summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-03-13 12:54:22 -0400
committerGitHub <noreply@github.com>2017-03-13 12:54:22 -0400
commitc281ee3b61e8ab53ff118866d72618ae8cce582b (patch)
tree776e7bdf6c8bfbb9a1dee5976496ab065959991f /vendor/golang.org
parent3ada7a41a7fb13abef19dd63dc56b720900dbaa9 (diff)
downloadchat-c281ee3b61e8ab53ff118866d72618ae8cce582b.tar.gz
chat-c281ee3b61e8ab53ff118866d72618ae8cce582b.tar.bz2
chat-c281ee3b61e8ab53ff118866d72618ae8cce582b.zip
Updating server dependancies. Also adding github.com/jaytaylor/html2text and gopkg.in/gomail.v2 (#5748)
Diffstat (limited to 'vendor/golang.org')
-rw-r--r--vendor/golang.org/x/crypto/acme/acme.go119
-rw-r--r--vendor/golang.org/x/crypto/acme/acme_test.go117
-rw-r--r--vendor/golang.org/x/crypto/acme/autocert/autocert_test.go41
-rw-r--r--vendor/golang.org/x/crypto/acme/autocert/renewal_test.go2
-rw-r--r--vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s696
-rw-r--r--vendor/golang.org/x/crypto/blake2b/register.go32
-rw-r--r--vendor/golang.org/x/crypto/blake2s/register.go21
-rw-r--r--vendor/golang.org/x/crypto/cryptobyte/asn1.go604
-rw-r--r--vendor/golang.org/x/crypto/cryptobyte/asn1_test.go285
-rw-r--r--vendor/golang.org/x/crypto/cryptobyte/builder.go255
-rw-r--r--vendor/golang.org/x/crypto/cryptobyte/cryptobyte_test.go379
-rw-r--r--vendor/golang.org/x/crypto/cryptobyte/example_test.go120
-rw-r--r--vendor/golang.org/x/crypto/cryptobyte/string.go157
-rw-r--r--vendor/golang.org/x/crypto/curve25519/const_amd64.h8
-rw-r--r--vendor/golang.org/x/crypto/curve25519/const_amd64.s4
-rw-r--r--vendor/golang.org/x/crypto/curve25519/freeze_amd64.s4
-rw-r--r--vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s20
-rw-r--r--vendor/golang.org/x/crypto/curve25519/mul_amd64.s4
-rw-r--r--vendor/golang.org/x/crypto/curve25519/square_amd64.s4
-rw-r--r--vendor/golang.org/x/crypto/ocsp/ocsp_test.go6
-rw-r--r--vendor/golang.org/x/crypto/poly1305/poly1305_test.go37
-rw-r--r--vendor/golang.org/x/crypto/poly1305/sum_ref.go1634
-rw-r--r--vendor/golang.org/x/crypto/ssh/agent/client_test.go2
-rw-r--r--vendor/golang.org/x/crypto/ssh/cipher.go62
-rw-r--r--vendor/golang.org/x/crypto/ssh/cipher_test.go68
-rw-r--r--vendor/golang.org/x/crypto/ssh/client_auth_test.go4
-rw-r--r--vendor/golang.org/x/crypto/ssh/common.go2
-rw-r--r--vendor/golang.org/x/crypto/ssh/handshake.go49
-rw-r--r--vendor/golang.org/x/crypto/ssh/handshake_test.go61
-rw-r--r--vendor/golang.org/x/crypto/ssh/mac.go10
-rw-r--r--vendor/golang.org/x/crypto/ssh/mux_test.go3
-rw-r--r--vendor/golang.org/x/crypto/ssh/server.go27
-rw-r--r--vendor/golang.org/x/crypto/ssh/transport.go32
-rw-r--r--vendor/golang.org/x/image/draw/draw.go42
-rw-r--r--vendor/golang.org/x/image/draw/gen.go2
-rw-r--r--vendor/golang.org/x/image/draw/go1_8.go49
-rw-r--r--vendor/golang.org/x/image/draw/go1_9.go57
-rw-r--r--vendor/golang.org/x/image/draw/impl.go96
-rw-r--r--vendor/golang.org/x/image/draw/stdlib_test.go6
-rw-r--r--vendor/golang.org/x/image/font/sfnt/cmap.go269
-rw-r--r--vendor/golang.org/x/image/font/sfnt/data.go68
-rw-r--r--vendor/golang.org/x/image/font/sfnt/example_test.go128
-rw-r--r--vendor/golang.org/x/image/font/sfnt/gen.go321
-rw-r--r--vendor/golang.org/x/image/font/sfnt/postscript.go111
-rw-r--r--vendor/golang.org/x/image/font/sfnt/proprietary_test.go479
-rw-r--r--vendor/golang.org/x/image/font/sfnt/sfnt.go561
-rw-r--r--vendor/golang.org/x/image/font/sfnt/sfnt_test.go370
-rw-r--r--vendor/golang.org/x/image/font/sfnt/truetype.go29
-rw-r--r--vendor/golang.org/x/image/font/testdata/cmapTest.sfd265
-rw-r--r--vendor/golang.org/x/image/font/testdata/cmapTest.ttfbin0 -> 2528 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-down-ab.pngbin21338 -> 21092 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-down-bl.pngbin18581 -> 18169 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-down-cr.pngbin19519 -> 19141 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-down-nn.pngbin21504 -> 21320 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-rotate-ab.pngbin7654 -> 7417 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-rotate-bl.pngbin7653 -> 7421 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-rotate-cr.pngbin7808 -> 7544 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-rotate-nn.pngbin4915 -> 5128 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-up-ab.pngbin9633 -> 9427 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-up-bl.pngbin9639 -> 9427 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-up-cr.pngbin10987 -> 10694 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/go-turns-two-up-nn.pngbin1368 -> 1369 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/tux-rotate-ab.pngbin3237 -> 3340 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/tux-rotate-bl.pngbin3751 -> 3836 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/tux-rotate-cr.pngbin3753 -> 3841 bytes
-rw-r--r--vendor/golang.org/x/image/testdata/tux-rotate-nn.pngbin3055 -> 3159 bytes
-rw-r--r--vendor/golang.org/x/net/bpf/vm_bpf_test.go7
-rw-r--r--vendor/golang.org/x/net/context/context.go30
-rw-r--r--vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go1
-rw-r--r--vendor/golang.org/x/net/context/go17.go4
-rw-r--r--vendor/golang.org/x/net/context/pre_go17.go18
-rw-r--r--vendor/golang.org/x/net/dns/dnsmessage/message.go1418
-rw-r--r--vendor/golang.org/x/net/dns/dnsmessage/message_test.go575
-rw-r--r--vendor/golang.org/x/net/http2/client_conn_pool.go2
-rw-r--r--vendor/golang.org/x/net/http2/databuffer.go146
-rw-r--r--vendor/golang.org/x/net/http2/databuffer_test.go155
-rw-r--r--vendor/golang.org/x/net/http2/fixed_buffer.go60
-rw-r--r--vendor/golang.org/x/net/http2/fixed_buffer_test.go128
-rw-r--r--vendor/golang.org/x/net/http2/frame.go81
-rw-r--r--vendor/golang.org/x/net/http2/frame_test.go91
-rw-r--r--vendor/golang.org/x/net/http2/go18.go6
-rw-r--r--vendor/golang.org/x/net/http2/go18_test.go13
-rw-r--r--vendor/golang.org/x/net/http2/hpack/encode.go29
-rw-r--r--vendor/golang.org/x/net/http2/hpack/encode_test.go70
-rw-r--r--vendor/golang.org/x/net/http2/hpack/hpack.go104
-rw-r--r--vendor/golang.org/x/net/http2/hpack/hpack_test.go146
-rw-r--r--vendor/golang.org/x/net/http2/hpack/tables.go250
-rw-r--r--vendor/golang.org/x/net/http2/hpack/tables_test.go188
-rw-r--r--vendor/golang.org/x/net/http2/pipe.go2
-rw-r--r--vendor/golang.org/x/net/http2/server.go199
-rw-r--r--vendor/golang.org/x/net/http2/server_test.go155
-rw-r--r--vendor/golang.org/x/net/http2/transport.go9
-rw-r--r--vendor/golang.org/x/net/http2/transport_test.go2
-rw-r--r--vendor/golang.org/x/net/internal/netreflect/socket.go4
-rw-r--r--vendor/golang.org/x/net/internal/netreflect/socket_19.go37
-rw-r--r--vendor/golang.org/x/net/internal/netreflect/socket_posix.go1
-rw-r--r--vendor/golang.org/x/net/internal/netreflect/socket_stub.go1
-rw-r--r--vendor/golang.org/x/net/internal/netreflect/socket_test.go3
-rw-r--r--vendor/golang.org/x/net/internal/timeseries/timeseries.go2
-rw-r--r--vendor/golang.org/x/net/ipv4/doc.go12
-rw-r--r--vendor/golang.org/x/net/ipv4/endpoint.go8
-rw-r--r--vendor/golang.org/x/net/ipv4/go19_test.go11
-rw-r--r--vendor/golang.org/x/net/ipv4/ipv4_test.go22
-rw-r--r--vendor/golang.org/x/net/ipv4/packet.go6
-rw-r--r--vendor/golang.org/x/net/ipv4/payload_cmsg.go8
-rw-r--r--vendor/golang.org/x/net/ipv4/payload_nocmsg.go8
-rw-r--r--vendor/golang.org/x/net/ipv6/control.go2
-rw-r--r--vendor/golang.org/x/net/ipv6/dgramopt_posix.go4
-rw-r--r--vendor/golang.org/x/net/ipv6/dgramopt_stub.go4
-rw-r--r--vendor/golang.org/x/net/ipv6/doc.go12
-rw-r--r--vendor/golang.org/x/net/ipv6/endpoint.go4
-rw-r--r--vendor/golang.org/x/net/ipv6/go19_test.go11
-rw-r--r--vendor/golang.org/x/net/ipv6/ipv6_test.go22
-rw-r--r--vendor/golang.org/x/net/ipv6/payload_cmsg.go8
-rw-r--r--vendor/golang.org/x/net/ipv6/payload_nocmsg.go8
-rw-r--r--vendor/golang.org/x/net/lif/address.go4
-rw-r--r--vendor/golang.org/x/net/lif/binary.go49
-rw-r--r--vendor/golang.org/x/net/lif/link.go12
-rw-r--r--vendor/golang.org/x/net/lif/sys.go21
-rw-r--r--vendor/golang.org/x/net/lif/sys_solaris_amd64.s3
-rw-r--r--vendor/golang.org/x/net/lif/syscall.go5
-rw-r--r--vendor/golang.org/x/net/proxy/socks5.go57
-rw-r--r--vendor/golang.org/x/net/publicsuffix/table.go17901
-rw-r--r--vendor/golang.org/x/net/publicsuffix/table_test.go559
-rw-r--r--vendor/golang.org/x/net/route/address.go152
-rw-r--r--vendor/golang.org/x/net/route/binary.go2
-rw-r--r--vendor/golang.org/x/net/route/defs_darwin.go8
-rw-r--r--vendor/golang.org/x/net/route/defs_dragonfly.go8
-rw-r--r--vendor/golang.org/x/net/route/defs_freebsd.go8
-rw-r--r--vendor/golang.org/x/net/route/defs_netbsd.go8
-rw-r--r--vendor/golang.org/x/net/route/defs_openbsd.go12
-rw-r--r--vendor/golang.org/x/net/route/message.go8
-rw-r--r--vendor/golang.org/x/net/route/message_test.go129
-rw-r--r--vendor/golang.org/x/net/route/route.go59
-rw-r--r--vendor/golang.org/x/net/route/route_classic.go36
-rw-r--r--vendor/golang.org/x/net/route/route_openbsd.go35
-rw-r--r--vendor/golang.org/x/net/route/sys.go7
-rw-r--r--vendor/golang.org/x/net/route/sys_darwin.go45
-rw-r--r--vendor/golang.org/x/net/route/sys_dragonfly.go39
-rw-r--r--vendor/golang.org/x/net/route/sys_freebsd.go39
-rw-r--r--vendor/golang.org/x/net/route/sys_netbsd.go34
-rw-r--r--vendor/golang.org/x/net/route/sys_openbsd.go39
-rw-r--r--vendor/golang.org/x/net/route/syscall.go5
-rw-r--r--vendor/golang.org/x/net/route/syscall.s8
-rw-r--r--vendor/golang.org/x/net/route/zsys_darwin.go6
-rw-r--r--vendor/golang.org/x/net/route/zsys_dragonfly.go6
-rw-r--r--vendor/golang.org/x/net/route/zsys_freebsd_386.go6
-rw-r--r--vendor/golang.org/x/net/route/zsys_freebsd_amd64.go6
-rw-r--r--vendor/golang.org/x/net/route/zsys_freebsd_arm.go6
-rw-r--r--vendor/golang.org/x/net/route/zsys_netbsd.go6
-rw-r--r--vendor/golang.org/x/net/route/zsys_openbsd.go10
-rw-r--r--vendor/golang.org/x/net/webdav/internal/xml/marshal.go8
-rw-r--r--vendor/golang.org/x/net/webdav/internal/xml/read.go8
-rw-r--r--vendor/golang.org/x/net/webdav/internal/xml/xml.go6
-rw-r--r--vendor/golang.org/x/sys/unix/asm.s10
-rwxr-xr-xvendor/golang.org/x/sys/unix/mkall.sh4
-rwxr-xr-xvendor/golang.org/x/sys/unix/mkerrors.sh18
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksyscall.pl25
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksyscall_solaris.pl23
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysnum_linux.pl12
-rw-r--r--vendor/golang.org/x/sys/unix/syscall.go7
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin.go2
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_dragonfly.go1
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd.go1
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux.go150
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go2
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_s390x.go1
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd.go1
-rw-r--r--vendor/golang.org/x/sys/unix/types_linux.go8
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_386.go49
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go56
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_arm.go53
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go51
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mips.go55
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go48
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go48
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go46
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go51
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go48
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go47
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go46
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go37
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go38
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go51
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go37
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go35
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go52
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go52
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go52
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_386.go60
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go61
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go59
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go58
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go60
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go61
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go61
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go60
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go61
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go61
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go61
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go61
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go32
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go32
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go32
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go34
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go34
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go41
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_386.go37
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go22
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go35
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go15
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go25
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go9
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go9
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go25
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go11
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go18
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go5
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go2
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_386.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_arm.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mips.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go18
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go18
231 files changed, 20353 insertions, 13391 deletions
diff --git a/vendor/golang.org/x/crypto/acme/acme.go b/vendor/golang.org/x/crypto/acme/acme.go
index 8aafada09..8619508e5 100644
--- a/vendor/golang.org/x/crypto/acme/acme.go
+++ b/vendor/golang.org/x/crypto/acme/acme.go
@@ -47,6 +47,10 @@ const LetsEncryptURL = "https://acme-v01.api.letsencrypt.org/directory"
const (
maxChainLen = 5 // max depth and breadth of a certificate chain
maxCertSize = 1 << 20 // max size of a certificate, in bytes
+
+ // Max number of collected nonces kept in memory.
+ // Expect usual peak of 1 or 2.
+ maxNonces = 100
)
// CertOption is an optional argument type for Client methods which manipulate
@@ -108,6 +112,9 @@ type Client struct {
dirMu sync.Mutex // guards writes to dir
dir *Directory // cached result of Client's Discover method
+
+ noncesMu sync.Mutex
+ nonces map[string]struct{} // nonces collected from previous responses
}
// Discover performs ACME server discovery using c.DirectoryURL.
@@ -131,6 +138,7 @@ func (c *Client) Discover(ctx context.Context) (Directory, error) {
return Directory{}, err
}
defer res.Body.Close()
+ c.addNonce(res.Header)
if res.StatusCode != http.StatusOK {
return Directory{}, responseError(res)
}
@@ -192,7 +200,7 @@ func (c *Client) CreateCert(ctx context.Context, csr []byte, exp time.Duration,
req.NotAfter = now.Add(exp).Format(time.RFC3339)
}
- res, err := postJWS(ctx, c.HTTPClient, c.Key, c.dir.CertURL, req)
+ res, err := c.postJWS(ctx, c.Key, c.dir.CertURL, req)
if err != nil {
return nil, "", err
}
@@ -267,7 +275,7 @@ func (c *Client) RevokeCert(ctx context.Context, key crypto.Signer, cert []byte,
if key == nil {
key = c.Key
}
- res, err := postJWS(ctx, c.HTTPClient, key, c.dir.RevokeURL, body)
+ res, err := c.postJWS(ctx, key, c.dir.RevokeURL, body)
if err != nil {
return err
}
@@ -355,7 +363,7 @@ func (c *Client) Authorize(ctx context.Context, domain string) (*Authorization,
Resource: "new-authz",
Identifier: authzID{Type: "dns", Value: domain},
}
- res, err := postJWS(ctx, c.HTTPClient, c.Key, c.dir.AuthzURL, req)
+ res, err := c.postJWS(ctx, c.Key, c.dir.AuthzURL, req)
if err != nil {
return nil, err
}
@@ -413,7 +421,7 @@ func (c *Client) RevokeAuthorization(ctx context.Context, url string) error {
Status: "deactivated",
Delete: true,
}
- res, err := postJWS(ctx, c.HTTPClient, c.Key, url, req)
+ res, err := c.postJWS(ctx, c.Key, url, req)
if err != nil {
return err
}
@@ -519,7 +527,7 @@ func (c *Client) Accept(ctx context.Context, chal *Challenge) (*Challenge, error
Type: chal.Type,
Auth: auth,
}
- res, err := postJWS(ctx, c.HTTPClient, c.Key, chal.URI, req)
+ res, err := c.postJWS(ctx, c.Key, chal.URI, req)
if err != nil {
return nil, err
}
@@ -652,7 +660,7 @@ func (c *Client) doReg(ctx context.Context, url string, typ string, acct *Accoun
req.Contact = acct.Contact
req.Agreement = acct.AgreedTerms
}
- res, err := postJWS(ctx, c.HTTPClient, c.Key, url, req)
+ res, err := c.postJWS(ctx, c.Key, url, req)
if err != nil {
return nil, err
}
@@ -689,6 +697,78 @@ func (c *Client) doReg(ctx context.Context, url string, typ string, acct *Accoun
}, nil
}
+// postJWS signs the body with the given key and POSTs it to the provided url.
+// The body argument must be JSON-serializable.
+func (c *Client) postJWS(ctx context.Context, key crypto.Signer, url string, body interface{}) (*http.Response, error) {
+ nonce, err := c.popNonce(ctx, url)
+ if err != nil {
+ return nil, err
+ }
+ b, err := jwsEncodeJSON(body, key, nonce)
+ if err != nil {
+ return nil, err
+ }
+ res, err := ctxhttp.Post(ctx, c.HTTPClient, url, "application/jose+json", bytes.NewReader(b))
+ if err != nil {
+ return nil, err
+ }
+ c.addNonce(res.Header)
+ return res, nil
+}
+
+// popNonce returns a nonce value previously stored with c.addNonce
+// or fetches a fresh one from the given URL.
+func (c *Client) popNonce(ctx context.Context, url string) (string, error) {
+ c.noncesMu.Lock()
+ defer c.noncesMu.Unlock()
+ if len(c.nonces) == 0 {
+ return fetchNonce(ctx, c.HTTPClient, url)
+ }
+ var nonce string
+ for nonce = range c.nonces {
+ delete(c.nonces, nonce)
+ break
+ }
+ return nonce, nil
+}
+
+// addNonce stores a nonce value found in h (if any) for future use.
+func (c *Client) addNonce(h http.Header) {
+ v := nonceFromHeader(h)
+ if v == "" {
+ return
+ }
+ c.noncesMu.Lock()
+ defer c.noncesMu.Unlock()
+ if len(c.nonces) >= maxNonces {
+ return
+ }
+ if c.nonces == nil {
+ c.nonces = make(map[string]struct{})
+ }
+ c.nonces[v] = struct{}{}
+}
+
+func fetchNonce(ctx context.Context, client *http.Client, url string) (string, error) {
+ resp, err := ctxhttp.Head(ctx, client, url)
+ if err != nil {
+ return "", err
+ }
+ defer resp.Body.Close()
+ nonce := nonceFromHeader(resp.Header)
+ if nonce == "" {
+ if resp.StatusCode > 299 {
+ return "", responseError(resp)
+ }
+ return "", errors.New("acme: nonce not found")
+ }
+ return nonce, nil
+}
+
+func nonceFromHeader(h http.Header) string {
+ return h.Get("Replay-Nonce")
+}
+
func responseCert(ctx context.Context, client *http.Client, res *http.Response, bundle bool) ([][]byte, error) {
b, err := ioutil.ReadAll(io.LimitReader(res.Body, maxCertSize+1))
if err != nil {
@@ -793,33 +873,6 @@ func chainCert(ctx context.Context, client *http.Client, url string, depth int)
return chain, nil
}
-// postJWS signs the body with the given key and POSTs it to the provided url.
-// The body argument must be JSON-serializable.
-func postJWS(ctx context.Context, client *http.Client, key crypto.Signer, url string, body interface{}) (*http.Response, error) {
- nonce, err := fetchNonce(ctx, client, url)
- if err != nil {
- return nil, err
- }
- b, err := jwsEncodeJSON(body, key, nonce)
- if err != nil {
- return nil, err
- }
- return ctxhttp.Post(ctx, client, url, "application/jose+json", bytes.NewReader(b))
-}
-
-func fetchNonce(ctx context.Context, client *http.Client, url string) (string, error) {
- resp, err := ctxhttp.Head(ctx, client, url)
- if err != nil {
- return "", nil
- }
- defer resp.Body.Close()
- enc := resp.Header.Get("replay-nonce")
- if enc == "" {
- return "", errors.New("acme: nonce not found")
- }
- return enc, nil
-}
-
// linkHeader returns URI-Reference values of all Link headers
// with relation-type rel.
// See https://tools.ietf.org/html/rfc5988#section-5 for details.
diff --git a/vendor/golang.org/x/crypto/acme/acme_test.go b/vendor/golang.org/x/crypto/acme/acme_test.go
index 4e618f292..1205dbb36 100644
--- a/vendor/golang.org/x/crypto/acme/acme_test.go
+++ b/vendor/golang.org/x/crypto/acme/acme_test.go
@@ -45,6 +45,28 @@ func decodeJWSRequest(t *testing.T, v interface{}, r *http.Request) {
}
}
+type jwsHead struct {
+ Alg string
+ Nonce string
+ JWK map[string]string `json:"jwk"`
+}
+
+func decodeJWSHead(r *http.Request) (*jwsHead, error) {
+ var req struct{ Protected string }
+ if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
+ return nil, err
+ }
+ b, err := base64.RawURLEncoding.DecodeString(req.Protected)
+ if err != nil {
+ return nil, err
+ }
+ var head jwsHead
+ if err := json.Unmarshal(b, &head); err != nil {
+ return nil, err
+ }
+ return &head, nil
+}
+
func TestDiscover(t *testing.T) {
const (
reg = "https://example.com/acme/new-reg"
@@ -916,7 +938,30 @@ func TestRevokeCert(t *testing.T) {
}
}
-func TestFetchNonce(t *testing.T) {
+func TestNonce_add(t *testing.T) {
+ var c Client
+ c.addNonce(http.Header{"Replay-Nonce": {"nonce"}})
+ c.addNonce(http.Header{"Replay-Nonce": {}})
+ c.addNonce(http.Header{"Replay-Nonce": {"nonce"}})
+
+ nonces := map[string]struct{}{"nonce": struct{}{}}
+ if !reflect.DeepEqual(c.nonces, nonces) {
+ t.Errorf("c.nonces = %q; want %q", c.nonces, nonces)
+ }
+}
+
+func TestNonce_addMax(t *testing.T) {
+ c := &Client{nonces: make(map[string]struct{})}
+ for i := 0; i < maxNonces; i++ {
+ c.nonces[fmt.Sprintf("%d", i)] = struct{}{}
+ }
+ c.addNonce(http.Header{"Replay-Nonce": {"nonce"}})
+ if n := len(c.nonces); n != maxNonces {
+ t.Errorf("len(c.nonces) = %d; want %d", n, maxNonces)
+ }
+}
+
+func TestNonce_fetch(t *testing.T) {
tests := []struct {
code int
nonce string
@@ -949,6 +994,76 @@ func TestFetchNonce(t *testing.T) {
}
}
+func TestNonce_fetchError(t *testing.T) {
+ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ w.WriteHeader(http.StatusTooManyRequests)
+ }))
+ defer ts.Close()
+ _, err := fetchNonce(context.Background(), http.DefaultClient, ts.URL)
+ e, ok := err.(*Error)
+ if !ok {
+ t.Fatalf("err is %T; want *Error", err)
+ }
+ if e.StatusCode != http.StatusTooManyRequests {
+ t.Errorf("e.StatusCode = %d; want %d", e.StatusCode, http.StatusTooManyRequests)
+ }
+}
+
+func TestNonce_postJWS(t *testing.T) {
+ var count int
+ seen := make(map[string]bool)
+ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ count++
+ w.Header().Set("replay-nonce", fmt.Sprintf("nonce%d", count))
+ if r.Method == "HEAD" {
+ // We expect the client do a HEAD request
+ // but only to fetch the first nonce.
+ return
+ }
+ // Make client.Authorize happy; we're not testing its result.
+ defer func() {
+ w.WriteHeader(http.StatusCreated)
+ w.Write([]byte(`{"status":"valid"}`))
+ }()
+
+ head, err := decodeJWSHead(r)
+ if err != nil {
+ t.Errorf("decodeJWSHead: %v", err)
+ return
+ }
+ if head.Nonce == "" {
+ t.Error("head.Nonce is empty")
+ return
+ }
+ if seen[head.Nonce] {
+ t.Errorf("nonce is already used: %q", head.Nonce)
+ }
+ seen[head.Nonce] = true
+ }))
+ defer ts.Close()
+
+ client := Client{Key: testKey, dir: &Directory{AuthzURL: ts.URL}}
+ if _, err := client.Authorize(context.Background(), "example.com"); err != nil {
+ t.Errorf("client.Authorize 1: %v", err)
+ }
+ // The second call should not generate another extra HEAD request.
+ if _, err := client.Authorize(context.Background(), "example.com"); err != nil {
+ t.Errorf("client.Authorize 2: %v", err)
+ }
+
+ if count != 3 {
+ t.Errorf("total requests count: %d; want 3", count)
+ }
+ if n := len(client.nonces); n != 1 {
+ t.Errorf("len(client.nonces) = %d; want 1", n)
+ }
+ for k := range seen {
+ if _, exist := client.nonces[k]; exist {
+ t.Errorf("used nonce %q in client.nonces", k)
+ }
+ }
+}
+
func TestLinkHeader(t *testing.T) {
h := http.Header{"Link": {
`<https://example.com/acme/new-authz>;rel="next"`,
diff --git a/vendor/golang.org/x/crypto/acme/autocert/autocert_test.go b/vendor/golang.org/x/crypto/acme/autocert/autocert_test.go
index 4bcd6d532..7afb21331 100644
--- a/vendor/golang.org/x/crypto/acme/autocert/autocert_test.go
+++ b/vendor/golang.org/x/crypto/acme/autocert/autocert_test.go
@@ -22,6 +22,7 @@ import (
"net/http"
"net/http/httptest"
"reflect"
+ "sync"
"testing"
"time"
@@ -51,26 +52,44 @@ var authzTmpl = template.Must(template.New("authz").Parse(`{
]
}`))
-type memCache map[string][]byte
+type memCache struct {
+ mu sync.Mutex
+ keyData map[string][]byte
+}
+
+func (m *memCache) Get(ctx context.Context, key string) ([]byte, error) {
+ m.mu.Lock()
+ defer m.mu.Unlock()
-func (m memCache) Get(ctx context.Context, key string) ([]byte, error) {
- v, ok := m[key]
+ v, ok := m.keyData[key]
if !ok {
return nil, ErrCacheMiss
}
return v, nil
}
-func (m memCache) Put(ctx context.Context, key string, data []byte) error {
- m[key] = data
+func (m *memCache) Put(ctx context.Context, key string, data []byte) error {
+ m.mu.Lock()
+ defer m.mu.Unlock()
+
+ m.keyData[key] = data
return nil
}
-func (m memCache) Delete(ctx context.Context, key string) error {
- delete(m, key)
+func (m *memCache) Delete(ctx context.Context, key string) error {
+ m.mu.Lock()
+ defer m.mu.Unlock()
+
+ delete(m.keyData, key)
return nil
}
+func newMemCache() *memCache {
+ return &memCache{
+ keyData: make(map[string][]byte),
+ }
+}
+
func dummyCert(pub interface{}, san ...string) ([]byte, error) {
return dateDummyCert(pub, time.Now(), time.Now().Add(90*24*time.Hour), san...)
}
@@ -124,7 +143,7 @@ func TestGetCertificate_trailingDot(t *testing.T) {
func TestGetCertificate_ForceRSA(t *testing.T) {
man := &Manager{
Prompt: AcceptTOS,
- Cache: make(memCache),
+ Cache: newMemCache(),
ForceRSA: true,
}
defer man.stopRenew()
@@ -280,8 +299,7 @@ func testGetCertificate(t *testing.T, man *Manager, domain string, hello *tls.Cl
}
func TestAccountKeyCache(t *testing.T) {
- cache := make(memCache)
- m := Manager{Cache: cache}
+ m := Manager{Cache: newMemCache()}
ctx := context.Background()
k1, err := m.accountKey(ctx)
if err != nil {
@@ -315,8 +333,7 @@ func TestCache(t *testing.T) {
PrivateKey: privKey,
}
- cache := make(memCache)
- man := &Manager{Cache: cache}
+ man := &Manager{Cache: newMemCache()}
defer man.stopRenew()
if err := man.cachePut("example.org", tlscert); err != nil {
t.Fatalf("man.cachePut: %v", err)
diff --git a/vendor/golang.org/x/crypto/acme/autocert/renewal_test.go b/vendor/golang.org/x/crypto/acme/autocert/renewal_test.go
index d1ec52f4d..10c811ac4 100644
--- a/vendor/golang.org/x/crypto/acme/autocert/renewal_test.go
+++ b/vendor/golang.org/x/crypto/acme/autocert/renewal_test.go
@@ -111,7 +111,7 @@ func TestRenewFromCache(t *testing.T) {
}
man := &Manager{
Prompt: AcceptTOS,
- Cache: make(memCache),
+ Cache: newMemCache(),
RenewBefore: 24 * time.Hour,
Client: &acme.Client{
Key: key,
diff --git a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s
index 96a51d524..784bce6a9 100644
--- a/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s
+++ b/vendor/golang.org/x/crypto/blake2b/blake2bAVX2_amd64.s
@@ -54,68 +54,223 @@ DATA ·AVX_c48<>+0x00(SB)/8, $0x0100070605040302
DATA ·AVX_c48<>+0x08(SB)/8, $0x09080f0e0d0c0b0a
GLOBL ·AVX_c48<>(SB), (NOPTR+RODATA), $16
-// unfortunately the BYTE representation of VPERMQ must be used
+#define VPERMQ_0x39_Y1_Y1 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x39
+#define VPERMQ_0x93_Y1_Y1 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x93
+#define VPERMQ_0x4E_Y2_Y2 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xd2; BYTE $0x4e
+#define VPERMQ_0x93_Y3_Y3 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x93
+#define VPERMQ_0x39_Y3_Y3 BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x39
+
#define ROUND_AVX2(m0, m1, m2, m3, t, c40, c48) \
- VPADDQ m0, Y0, Y0; \
- VPADDQ Y1, Y0, Y0; \
- VPXOR Y0, Y3, Y3; \
- VPSHUFD $-79, Y3, Y3; \
- VPADDQ Y3, Y2, Y2; \
- VPXOR Y2, Y1, Y1; \
- VPSHUFB c40, Y1, Y1; \
- VPADDQ m1, Y0, Y0; \
- VPADDQ Y1, Y0, Y0; \
- VPXOR Y0, Y3, Y3; \
- VPSHUFB c48, Y3, Y3; \
- VPADDQ Y3, Y2, Y2; \
- VPXOR Y2, Y1, Y1; \
- VPADDQ Y1, Y1, t; \
- VPSRLQ $63, Y1, Y1; \
- VPXOR t, Y1, Y1; \
- BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x39 \ // VPERMQ 0x39, Y1, Y1
- BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xd2; BYTE $0x4e \ // VPERMQ 0x4e, Y2, Y2
- BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x93 \ // VPERMQ 0x93, Y3, Y3
- VPADDQ m2, Y0, Y0; \
- VPADDQ Y1, Y0, Y0; \
- VPXOR Y0, Y3, Y3; \
- VPSHUFD $-79, Y3, Y3; \
- VPADDQ Y3, Y2, Y2; \
- VPXOR Y2, Y1, Y1; \
- VPSHUFB c40, Y1, Y1; \
- VPADDQ m3, Y0, Y0; \
- VPADDQ Y1, Y0, Y0; \
- VPXOR Y0, Y3, Y3; \
- VPSHUFB c48, Y3, Y3; \
- VPADDQ Y3, Y2, Y2; \
- VPXOR Y2, Y1, Y1; \
- VPADDQ Y1, Y1, t; \
- VPSRLQ $63, Y1, Y1; \
- VPXOR t, Y1, Y1; \
- BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xdb; BYTE $0x39 \ // VPERMQ 0x39, Y3, Y3
- BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xd2; BYTE $0x4e \ // VPERMQ 0x4e, Y2, Y2
- BYTE $0xc4; BYTE $0xe3; BYTE $0xfd; BYTE $0x00; BYTE $0xc9; BYTE $0x93 \ // VPERMQ 0x93, Y1, Y1
-
-// load msg into Y12, Y13, Y14, Y15
-#define LOAD_MSG_AVX2(src, i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15) \
- MOVQ i0*8(src), X12; \
- PINSRQ $1, i1*8(src), X12; \
- MOVQ i2*8(src), X11; \
- PINSRQ $1, i3*8(src), X11; \
- VINSERTI128 $1, X11, Y12, Y12; \
- MOVQ i4*8(src), X13; \
- PINSRQ $1, i5*8(src), X13; \
- MOVQ i6*8(src), X11; \
- PINSRQ $1, i7*8(src), X11; \
- VINSERTI128 $1, X11, Y13, Y13; \
- MOVQ i8*8(src), X14; \
- PINSRQ $1, i9*8(src), X14; \
- MOVQ i10*8(src), X11; \
- PINSRQ $1, i11*8(src), X11; \
+ VPADDQ m0, Y0, Y0; \
+ VPADDQ Y1, Y0, Y0; \
+ VPXOR Y0, Y3, Y3; \
+ VPSHUFD $-79, Y3, Y3; \
+ VPADDQ Y3, Y2, Y2; \
+ VPXOR Y2, Y1, Y1; \
+ VPSHUFB c40, Y1, Y1; \
+ VPADDQ m1, Y0, Y0; \
+ VPADDQ Y1, Y0, Y0; \
+ VPXOR Y0, Y3, Y3; \
+ VPSHUFB c48, Y3, Y3; \
+ VPADDQ Y3, Y2, Y2; \
+ VPXOR Y2, Y1, Y1; \
+ VPADDQ Y1, Y1, t; \
+ VPSRLQ $63, Y1, Y1; \
+ VPXOR t, Y1, Y1; \
+ VPERMQ_0x39_Y1_Y1; \
+ VPERMQ_0x4E_Y2_Y2; \
+ VPERMQ_0x93_Y3_Y3; \
+ VPADDQ m2, Y0, Y0; \
+ VPADDQ Y1, Y0, Y0; \
+ VPXOR Y0, Y3, Y3; \
+ VPSHUFD $-79, Y3, Y3; \
+ VPADDQ Y3, Y2, Y2; \
+ VPXOR Y2, Y1, Y1; \
+ VPSHUFB c40, Y1, Y1; \
+ VPADDQ m3, Y0, Y0; \
+ VPADDQ Y1, Y0, Y0; \
+ VPXOR Y0, Y3, Y3; \
+ VPSHUFB c48, Y3, Y3; \
+ VPADDQ Y3, Y2, Y2; \
+ VPXOR Y2, Y1, Y1; \
+ VPADDQ Y1, Y1, t; \
+ VPSRLQ $63, Y1, Y1; \
+ VPXOR t, Y1, Y1; \
+ VPERMQ_0x39_Y3_Y3; \
+ VPERMQ_0x4E_Y2_Y2; \
+ VPERMQ_0x93_Y1_Y1
+
+#define VMOVQ_SI_X11_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x1E
+#define VMOVQ_SI_X12_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x26
+#define VMOVQ_SI_X13_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x2E
+#define VMOVQ_SI_X14_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x36
+#define VMOVQ_SI_X15_0 BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x3E
+
+#define VMOVQ_SI_X11(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x5E; BYTE $n
+#define VMOVQ_SI_X12(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x66; BYTE $n
+#define VMOVQ_SI_X13(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x6E; BYTE $n
+#define VMOVQ_SI_X14(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x76; BYTE $n
+#define VMOVQ_SI_X15(n) BYTE $0xC5; BYTE $0x7A; BYTE $0x7E; BYTE $0x7E; BYTE $n
+
+#define VPINSRQ_1_SI_X11_0 BYTE $0xC4; BYTE $0x63; BYTE $0xA1; BYTE $0x22; BYTE $0x1E; BYTE $0x01
+#define VPINSRQ_1_SI_X12_0 BYTE $0xC4; BYTE $0x63; BYTE $0x99; BYTE $0x22; BYTE $0x26; BYTE $0x01
+#define VPINSRQ_1_SI_X13_0 BYTE $0xC4; BYTE $0x63; BYTE $0x91; BYTE $0x22; BYTE $0x2E; BYTE $0x01
+#define VPINSRQ_1_SI_X14_0 BYTE $0xC4; BYTE $0x63; BYTE $0x89; BYTE $0x22; BYTE $0x36; BYTE $0x01
+#define VPINSRQ_1_SI_X15_0 BYTE $0xC4; BYTE $0x63; BYTE $0x81; BYTE $0x22; BYTE $0x3E; BYTE $0x01
+
+#define VPINSRQ_1_SI_X11(n) BYTE $0xC4; BYTE $0x63; BYTE $0xA1; BYTE $0x22; BYTE $0x5E; BYTE $n; BYTE $0x01
+#define VPINSRQ_1_SI_X12(n) BYTE $0xC4; BYTE $0x63; BYTE $0x99; BYTE $0x22; BYTE $0x66; BYTE $n; BYTE $0x01
+#define VPINSRQ_1_SI_X13(n) BYTE $0xC4; BYTE $0x63; BYTE $0x91; BYTE $0x22; BYTE $0x6E; BYTE $n; BYTE $0x01
+#define VPINSRQ_1_SI_X14(n) BYTE $0xC4; BYTE $0x63; BYTE $0x89; BYTE $0x22; BYTE $0x76; BYTE $n; BYTE $0x01
+#define VPINSRQ_1_SI_X15(n) BYTE $0xC4; BYTE $0x63; BYTE $0x81; BYTE $0x22; BYTE $0x7E; BYTE $n; BYTE $0x01
+
+#define VMOVQ_R8_X15 BYTE $0xC4; BYTE $0x41; BYTE $0xF9; BYTE $0x6E; BYTE $0xF8
+#define VPINSRQ_1_R9_X15 BYTE $0xC4; BYTE $0x43; BYTE $0x81; BYTE $0x22; BYTE $0xF9; BYTE $0x01
+
+// load msg: Y12 = (i0, i1, i2, i3)
+// i0, i1, i2, i3 must not be 0
+#define LOAD_MSG_AVX2_Y12(i0, i1, i2, i3) \
+ VMOVQ_SI_X12(i0*8); \
+ VMOVQ_SI_X11(i2*8); \
+ VPINSRQ_1_SI_X12(i1*8); \
+ VPINSRQ_1_SI_X11(i3*8); \
+ VINSERTI128 $1, X11, Y12, Y12
+
+// load msg: Y13 = (i0, i1, i2, i3)
+// i0, i1, i2, i3 must not be 0
+#define LOAD_MSG_AVX2_Y13(i0, i1, i2, i3) \
+ VMOVQ_SI_X13(i0*8); \
+ VMOVQ_SI_X11(i2*8); \
+ VPINSRQ_1_SI_X13(i1*8); \
+ VPINSRQ_1_SI_X11(i3*8); \
+ VINSERTI128 $1, X11, Y13, Y13
+
+// load msg: Y14 = (i0, i1, i2, i3)
+// i0, i1, i2, i3 must not be 0
+#define LOAD_MSG_AVX2_Y14(i0, i1, i2, i3) \
+ VMOVQ_SI_X14(i0*8); \
+ VMOVQ_SI_X11(i2*8); \
+ VPINSRQ_1_SI_X14(i1*8); \
+ VPINSRQ_1_SI_X11(i3*8); \
+ VINSERTI128 $1, X11, Y14, Y14
+
+// load msg: Y15 = (i0, i1, i2, i3)
+// i0, i1, i2, i3 must not be 0
+#define LOAD_MSG_AVX2_Y15(i0, i1, i2, i3) \
+ VMOVQ_SI_X15(i0*8); \
+ VMOVQ_SI_X11(i2*8); \
+ VPINSRQ_1_SI_X15(i1*8); \
+ VPINSRQ_1_SI_X11(i3*8); \
+ VINSERTI128 $1, X11, Y15, Y15
+
+#define LOAD_MSG_AVX2_0_2_4_6_1_3_5_7_8_10_12_14_9_11_13_15() \
+ VMOVQ_SI_X12_0; \
+ VMOVQ_SI_X11(4*8); \
+ VPINSRQ_1_SI_X12(2*8); \
+ VPINSRQ_1_SI_X11(6*8); \
+ VINSERTI128 $1, X11, Y12, Y12; \
+ LOAD_MSG_AVX2_Y13(1, 3, 5, 7); \
+ LOAD_MSG_AVX2_Y14(8, 10, 12, 14); \
+ LOAD_MSG_AVX2_Y15(9, 11, 13, 15)
+
+#define LOAD_MSG_AVX2_14_4_9_13_10_8_15_6_1_0_11_5_12_2_7_3() \
+ LOAD_MSG_AVX2_Y12(14, 4, 9, 13); \
+ LOAD_MSG_AVX2_Y13(10, 8, 15, 6); \
+ VMOVQ_SI_X11(11*8); \
+ VPSHUFD $0x4E, 0*8(SI), X14; \
+ VPINSRQ_1_SI_X11(5*8); \
VINSERTI128 $1, X11, Y14, Y14; \
- MOVQ i12*8(src), X15; \
- PINSRQ $1, i13*8(src), X15; \
- MOVQ i14*8(src), X11; \
- PINSRQ $1, i15*8(src), X11; \
+ LOAD_MSG_AVX2_Y15(12, 2, 7, 3)
+
+#define LOAD_MSG_AVX2_11_12_5_15_8_0_2_13_10_3_7_9_14_6_1_4() \
+ VMOVQ_SI_X11(5*8); \
+ VMOVDQU 11*8(SI), X12; \
+ VPINSRQ_1_SI_X11(15*8); \
+ VINSERTI128 $1, X11, Y12, Y12; \
+ VMOVQ_SI_X13(8*8); \
+ VMOVQ_SI_X11(2*8); \
+ VPINSRQ_1_SI_X13_0; \
+ VPINSRQ_1_SI_X11(13*8); \
+ VINSERTI128 $1, X11, Y13, Y13; \
+ LOAD_MSG_AVX2_Y14(10, 3, 7, 9); \
+ LOAD_MSG_AVX2_Y15(14, 6, 1, 4)
+
+#define LOAD_MSG_AVX2_7_3_13_11_9_1_12_14_2_5_4_15_6_10_0_8() \
+ LOAD_MSG_AVX2_Y12(7, 3, 13, 11); \
+ LOAD_MSG_AVX2_Y13(9, 1, 12, 14); \
+ LOAD_MSG_AVX2_Y14(2, 5, 4, 15); \
+ VMOVQ_SI_X15(6*8); \
+ VMOVQ_SI_X11_0; \
+ VPINSRQ_1_SI_X15(10*8); \
+ VPINSRQ_1_SI_X11(8*8); \
+ VINSERTI128 $1, X11, Y15, Y15
+
+#define LOAD_MSG_AVX2_9_5_2_10_0_7_4_15_14_11_6_3_1_12_8_13() \
+ LOAD_MSG_AVX2_Y12(9, 5, 2, 10); \
+ VMOVQ_SI_X13_0; \
+ VMOVQ_SI_X11(4*8); \
+ VPINSRQ_1_SI_X13(7*8); \
+ VPINSRQ_1_SI_X11(15*8); \
+ VINSERTI128 $1, X11, Y13, Y13; \
+ LOAD_MSG_AVX2_Y14(14, 11, 6, 3); \
+ LOAD_MSG_AVX2_Y15(1, 12, 8, 13)
+
+#define LOAD_MSG_AVX2_2_6_0_8_12_10_11_3_4_7_15_1_13_5_14_9() \
+ VMOVQ_SI_X12(2*8); \
+ VMOVQ_SI_X11_0; \
+ VPINSRQ_1_SI_X12(6*8); \
+ VPINSRQ_1_SI_X11(8*8); \
+ VINSERTI128 $1, X11, Y12, Y12; \
+ LOAD_MSG_AVX2_Y13(12, 10, 11, 3); \
+ LOAD_MSG_AVX2_Y14(4, 7, 15, 1); \
+ LOAD_MSG_AVX2_Y15(13, 5, 14, 9)
+
+#define LOAD_MSG_AVX2_12_1_14_4_5_15_13_10_0_6_9_8_7_3_2_11() \
+ LOAD_MSG_AVX2_Y12(12, 1, 14, 4); \
+ LOAD_MSG_AVX2_Y13(5, 15, 13, 10); \
+ VMOVQ_SI_X14_0; \
+ VPSHUFD $0x4E, 8*8(SI), X11; \
+ VPINSRQ_1_SI_X14(6*8); \
+ VINSERTI128 $1, X11, Y14, Y14; \
+ LOAD_MSG_AVX2_Y15(7, 3, 2, 11)
+
+#define LOAD_MSG_AVX2_13_7_12_3_11_14_1_9_5_15_8_2_0_4_6_10() \
+ LOAD_MSG_AVX2_Y12(13, 7, 12, 3); \
+ LOAD_MSG_AVX2_Y13(11, 14, 1, 9); \
+ LOAD_MSG_AVX2_Y14(5, 15, 8, 2); \
+ VMOVQ_SI_X15_0; \
+ VMOVQ_SI_X11(6*8); \
+ VPINSRQ_1_SI_X15(4*8); \
+ VPINSRQ_1_SI_X11(10*8); \
+ VINSERTI128 $1, X11, Y15, Y15
+
+#define LOAD_MSG_AVX2_6_14_11_0_15_9_3_8_12_13_1_10_2_7_4_5() \
+ VMOVQ_SI_X12(6*8); \
+ VMOVQ_SI_X11(11*8); \
+ VPINSRQ_1_SI_X12(14*8); \
+ VPINSRQ_1_SI_X11_0; \
+ VINSERTI128 $1, X11, Y12, Y12; \
+ LOAD_MSG_AVX2_Y13(15, 9, 3, 8); \
+ VMOVQ_SI_X11(1*8); \
+ VMOVDQU 12*8(SI), X14; \
+ VPINSRQ_1_SI_X11(10*8); \
+ VINSERTI128 $1, X11, Y14, Y14; \
+ VMOVQ_SI_X15(2*8); \
+ VMOVDQU 4*8(SI), X11; \
+ VPINSRQ_1_SI_X15(7*8); \
+ VINSERTI128 $1, X11, Y15, Y15
+
+#define LOAD_MSG_AVX2_10_8_7_1_2_4_6_5_15_9_3_13_11_14_12_0() \
+ LOAD_MSG_AVX2_Y12(10, 8, 7, 1); \
+ VMOVQ_SI_X13(2*8); \
+ VPSHUFD $0x4E, 5*8(SI), X11; \
+ VPINSRQ_1_SI_X13(4*8); \
+ VINSERTI128 $1, X11, Y13, Y13; \
+ LOAD_MSG_AVX2_Y14(15, 9, 3, 13); \
+ VMOVQ_SI_X15(11*8); \
+ VMOVQ_SI_X11(12*8); \
+ VPINSRQ_1_SI_X15(14*8); \
+ VPINSRQ_1_SI_X11_0; \
VINSERTI128 $1, X11, Y15, Y15
// func hashBlocksAVX2(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
@@ -162,34 +317,34 @@ noinc:
VMOVDQA Y6, Y2
VPXOR 0(SP), Y7, Y3
- LOAD_MSG_AVX2(SI, 0, 2, 4, 6, 1, 3, 5, 7, 8, 10, 12, 14, 9, 11, 13, 15)
+ LOAD_MSG_AVX2_0_2_4_6_1_3_5_7_8_10_12_14_9_11_13_15()
VMOVDQA Y12, 32(SP)
VMOVDQA Y13, 64(SP)
VMOVDQA Y14, 96(SP)
VMOVDQA Y15, 128(SP)
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 14, 4, 9, 13, 10, 8, 15, 6, 1, 0, 11, 5, 12, 2, 7, 3)
+ LOAD_MSG_AVX2_14_4_9_13_10_8_15_6_1_0_11_5_12_2_7_3()
VMOVDQA Y12, 160(SP)
VMOVDQA Y13, 192(SP)
VMOVDQA Y14, 224(SP)
VMOVDQA Y15, 256(SP)
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 11, 12, 5, 15, 8, 0, 2, 13, 10, 3, 7, 9, 14, 6, 1, 4)
+ LOAD_MSG_AVX2_11_12_5_15_8_0_2_13_10_3_7_9_14_6_1_4()
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 7, 3, 13, 11, 9, 1, 12, 14, 2, 5, 4, 15, 6, 10, 0, 8)
+ LOAD_MSG_AVX2_7_3_13_11_9_1_12_14_2_5_4_15_6_10_0_8()
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 9, 5, 2, 10, 0, 7, 4, 15, 14, 11, 6, 3, 1, 12, 8, 13)
+ LOAD_MSG_AVX2_9_5_2_10_0_7_4_15_14_11_6_3_1_12_8_13()
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 2, 6, 0, 8, 12, 10, 11, 3, 4, 7, 15, 1, 13, 5, 14, 9)
+ LOAD_MSG_AVX2_2_6_0_8_12_10_11_3_4_7_15_1_13_5_14_9()
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 12, 1, 14, 4, 5, 15, 13, 10, 0, 6, 9, 8, 7, 3, 2, 11)
+ LOAD_MSG_AVX2_12_1_14_4_5_15_13_10_0_6_9_8_7_3_2_11()
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 13, 7, 12, 3, 11, 14, 1, 9, 5, 15, 8, 2, 0, 4, 6, 10)
+ LOAD_MSG_AVX2_13_7_12_3_11_14_1_9_5_15_8_2_0_4_6_10()
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 6, 14, 11, 0, 15, 9, 3, 8, 12, 13, 1, 10, 2, 7, 4, 5)
+ LOAD_MSG_AVX2_6_14_11_0_15_9_3_8_12_13_1_10_2_7_4_5()
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
- LOAD_MSG_AVX2(SI, 10, 8, 7, 1, 2, 4, 6, 5, 15, 9, 3, 13, 11, 14, 12, 0)
+ LOAD_MSG_AVX2_10_8_7_1_2_4_6_5_15_9_3_13_11_14_12_0()
ROUND_AVX2(Y12, Y13, Y14, Y15, Y10, Y4, Y5)
ROUND_AVX2(32(SP), 64(SP), 96(SP), 128(SP), Y10, Y4, Y5)
@@ -209,56 +364,55 @@ noinc:
VMOVDQU Y8, 0(AX)
VMOVDQU Y9, 32(AX)
+ VZEROUPPER
MOVQ DX, SP
RET
-// unfortunately the BYTE representation of VPUNPCKLQDQ and VPUNPCKHQDQ must be used
-#define VPUNPCKLQDQ_X8_X8_X10 BYTE $0xC4; BYTE $0x41; BYTE $0x39; BYTE $0x6C; BYTE $0xD0
-#define VPUNPCKHQDQ_X7_X10_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xF2
-#define VPUNPCKLQDQ_X7_X7_X10 BYTE $0xC5; BYTE $0x41; BYTE $0x6C; BYTE $0xD7
-#define VPUNPCKHQDQ_X8_X10_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x39; BYTE $0x6D; BYTE $0xFA
-#define VPUNPCKLQDQ_X3_X3_X10 BYTE $0xC5; BYTE $0x61; BYTE $0x6C; BYTE $0xD3
-#define VPUNPCKHQDQ_X2_X10_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x69; BYTE $0x6D; BYTE $0xD2
-#define VPUNPCKLQDQ_X9_X9_X10 BYTE $0xC4; BYTE $0x41; BYTE $0x31; BYTE $0x6C; BYTE $0xD1
-#define VPUNPCKHQDQ_X3_X10_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xDA
-#define VPUNPCKLQDQ_X2_X2_X10 BYTE $0xC5; BYTE $0x69; BYTE $0x6C; BYTE $0xD2
-#define VPUNPCKHQDQ_X3_X10_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xD2
-#define VPUNPCKHQDQ_X8_X10_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x39; BYTE $0x6D; BYTE $0xDA
-#define VPUNPCKHQDQ_X6_X10_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x49; BYTE $0x6D; BYTE $0xF2
-#define VPUNPCKHQDQ_X7_X10_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xFA
-
-// shuffle X2 and X6 using the temp registers X8, X9, X10
+#define VPUNPCKLQDQ_X2_X2_X15 BYTE $0xC5; BYTE $0x69; BYTE $0x6C; BYTE $0xFA
+#define VPUNPCKLQDQ_X3_X3_X15 BYTE $0xC5; BYTE $0x61; BYTE $0x6C; BYTE $0xFB
+#define VPUNPCKLQDQ_X7_X7_X15 BYTE $0xC5; BYTE $0x41; BYTE $0x6C; BYTE $0xFF
+#define VPUNPCKLQDQ_X13_X13_X15 BYTE $0xC4; BYTE $0x41; BYTE $0x11; BYTE $0x6C; BYTE $0xFD
+#define VPUNPCKLQDQ_X14_X14_X15 BYTE $0xC4; BYTE $0x41; BYTE $0x09; BYTE $0x6C; BYTE $0xFE
+
+#define VPUNPCKHQDQ_X15_X2_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x69; BYTE $0x6D; BYTE $0xD7
+#define VPUNPCKHQDQ_X15_X3_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xDF
+#define VPUNPCKHQDQ_X15_X6_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x49; BYTE $0x6D; BYTE $0xF7
+#define VPUNPCKHQDQ_X15_X7_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xFF
+#define VPUNPCKHQDQ_X15_X3_X2 BYTE $0xC4; BYTE $0xC1; BYTE $0x61; BYTE $0x6D; BYTE $0xD7
+#define VPUNPCKHQDQ_X15_X7_X6 BYTE $0xC4; BYTE $0xC1; BYTE $0x41; BYTE $0x6D; BYTE $0xF7
+#define VPUNPCKHQDQ_X15_X13_X3 BYTE $0xC4; BYTE $0xC1; BYTE $0x11; BYTE $0x6D; BYTE $0xDF
+#define VPUNPCKHQDQ_X15_X13_X7 BYTE $0xC4; BYTE $0xC1; BYTE $0x11; BYTE $0x6D; BYTE $0xFF
+
#define SHUFFLE_AVX() \
- VMOVDQA X4, X9; \
- VMOVDQA X5, X4; \
- VMOVDQA X9, X5; \
- VMOVDQA X6, X8; \
- VPUNPCKLQDQ_X8_X8_X10; \
- VPUNPCKHQDQ_X7_X10_X6; \
- VPUNPCKLQDQ_X7_X7_X10; \
- VPUNPCKHQDQ_X8_X10_X7; \
- VPUNPCKLQDQ_X3_X3_X10; \
- VMOVDQA X2, X9; \
- VPUNPCKHQDQ_X2_X10_X2; \
- VPUNPCKLQDQ_X9_X9_X10; \
- VPUNPCKHQDQ_X3_X10_X3; \
-
-// inverse shuffle X2 and X6 using the temp registers X8, X9, X10
+ VMOVDQA X6, X13; \
+ VMOVDQA X2, X14; \
+ VMOVDQA X4, X6; \
+ VPUNPCKLQDQ_X13_X13_X15; \
+ VMOVDQA X5, X4; \
+ VMOVDQA X6, X5; \
+ VPUNPCKHQDQ_X15_X7_X6; \
+ VPUNPCKLQDQ_X7_X7_X15; \
+ VPUNPCKHQDQ_X15_X13_X7; \
+ VPUNPCKLQDQ_X3_X3_X15; \
+ VPUNPCKHQDQ_X15_X2_X2; \
+ VPUNPCKLQDQ_X14_X14_X15; \
+ VPUNPCKHQDQ_X15_X3_X3; \
+
#define SHUFFLE_AVX_INV() \
- VMOVDQA X4, X9; \
- VMOVDQA X5, X4; \
- VMOVDQA X9, X5; \
- VMOVDQA X2, X8; \
- VPUNPCKLQDQ_X2_X2_X10; \
- VPUNPCKHQDQ_X3_X10_X2; \
- VPUNPCKLQDQ_X3_X3_X10; \
- VPUNPCKHQDQ_X8_X10_X3; \
- VPUNPCKLQDQ_X7_X7_X10; \
- VMOVDQA X6, X9; \
- VPUNPCKHQDQ_X6_X10_X6; \
- VPUNPCKLQDQ_X9_X9_X10; \
- VPUNPCKHQDQ_X7_X10_X7; \
+ VMOVDQA X2, X13; \
+ VMOVDQA X4, X14; \
+ VPUNPCKLQDQ_X2_X2_X15; \
+ VMOVDQA X5, X4; \
+ VPUNPCKHQDQ_X15_X3_X2; \
+ VMOVDQA X14, X5; \
+ VPUNPCKLQDQ_X3_X3_X15; \
+ VMOVDQA X6, X14; \
+ VPUNPCKHQDQ_X15_X13_X3; \
+ VPUNPCKLQDQ_X7_X7_X15; \
+ VPUNPCKHQDQ_X15_X6_X6; \
+ VPUNPCKLQDQ_X14_X14_X15; \
+ VPUNPCKHQDQ_X15_X7_X7; \
#define HALF_ROUND_AVX(v0, v1, v2, v3, v4, v5, v6, v7, m0, m1, m2, m3, t0, c40, c48) \
VPADDQ m0, v0, v0; \
@@ -294,28 +448,133 @@ noinc:
VPSRLQ $63, v3, v3; \
VPXOR t0, v3, v3
-// unfortunately the BYTE representation of VPINSRQ must be used
-#define VPINSRQ_1_R10_X8_X8 BYTE $0xC4; BYTE $0x43; BYTE $0xB9; BYTE $0x22; BYTE $0xC2; BYTE $0x01
-#define VPINSRQ_1_R11_X9_X9 BYTE $0xC4; BYTE $0x43; BYTE $0xB1; BYTE $0x22; BYTE $0xCB; BYTE $0x01
-#define VPINSRQ_1_R12_X10_X10 BYTE $0xC4; BYTE $0x43; BYTE $0xA9; BYTE $0x22; BYTE $0xD4; BYTE $0x01
-#define VPINSRQ_1_R13_X11_X11 BYTE $0xC4; BYTE $0x43; BYTE $0xA1; BYTE $0x22; BYTE $0xDD; BYTE $0x01
-
-#define VPINSRQ_1_R9_X8_X8 BYTE $0xC4; BYTE $0x43; BYTE $0xB9; BYTE $0x22; BYTE $0xC1; BYTE $0x01
-
-// load src into X8, X9, X10 and X11 using R10, R11, R12 and R13 for temp registers
-#define LOAD_MSG_AVX(src, i0, i1, i2, i3, i4, i5, i6, i7) \
- MOVQ i0*8(src), X8; \
- MOVQ i1*8(src), R10; \
- MOVQ i2*8(src), X9; \
- MOVQ i3*8(src), R11; \
- MOVQ i4*8(src), X10; \
- MOVQ i5*8(src), R12; \
- MOVQ i6*8(src), X11; \
- MOVQ i7*8(src), R13; \
- VPINSRQ_1_R10_X8_X8; \
- VPINSRQ_1_R11_X9_X9; \
- VPINSRQ_1_R12_X10_X10; \
- VPINSRQ_1_R13_X11_X11
+// load msg: X12 = (i0, i1), X13 = (i2, i3), X14 = (i4, i5), X15 = (i6, i7)
+// i0, i1, i2, i3, i4, i5, i6, i7 must not be 0
+#define LOAD_MSG_AVX(i0, i1, i2, i3, i4, i5, i6, i7) \
+ VMOVQ_SI_X12(i0*8); \
+ VMOVQ_SI_X13(i2*8); \
+ VMOVQ_SI_X14(i4*8); \
+ VMOVQ_SI_X15(i6*8); \
+ VPINSRQ_1_SI_X12(i1*8); \
+ VPINSRQ_1_SI_X13(i3*8); \
+ VPINSRQ_1_SI_X14(i5*8); \
+ VPINSRQ_1_SI_X15(i7*8)
+
+// load msg: X12 = (0, 2), X13 = (4, 6), X14 = (1, 3), X15 = (5, 7)
+#define LOAD_MSG_AVX_0_2_4_6_1_3_5_7() \
+ VMOVQ_SI_X12_0; \
+ VMOVQ_SI_X13(4*8); \
+ VMOVQ_SI_X14(1*8); \
+ VMOVQ_SI_X15(5*8); \
+ VPINSRQ_1_SI_X12(2*8); \
+ VPINSRQ_1_SI_X13(6*8); \
+ VPINSRQ_1_SI_X14(3*8); \
+ VPINSRQ_1_SI_X15(7*8)
+
+// load msg: X12 = (1, 0), X13 = (11, 5), X14 = (12, 2), X15 = (7, 3)
+#define LOAD_MSG_AVX_1_0_11_5_12_2_7_3() \
+ VPSHUFD $0x4E, 0*8(SI), X12; \
+ VMOVQ_SI_X13(11*8); \
+ VMOVQ_SI_X14(12*8); \
+ VMOVQ_SI_X15(7*8); \
+ VPINSRQ_1_SI_X13(5*8); \
+ VPINSRQ_1_SI_X14(2*8); \
+ VPINSRQ_1_SI_X15(3*8)
+
+// load msg: X12 = (11, 12), X13 = (5, 15), X14 = (8, 0), X15 = (2, 13)
+#define LOAD_MSG_AVX_11_12_5_15_8_0_2_13() \
+ VMOVDQU 11*8(SI), X12; \
+ VMOVQ_SI_X13(5*8); \
+ VMOVQ_SI_X14(8*8); \
+ VMOVQ_SI_X15(2*8); \
+ VPINSRQ_1_SI_X13(15*8); \
+ VPINSRQ_1_SI_X14_0; \
+ VPINSRQ_1_SI_X15(13*8)
+
+// load msg: X12 = (2, 5), X13 = (4, 15), X14 = (6, 10), X15 = (0, 8)
+#define LOAD_MSG_AVX_2_5_4_15_6_10_0_8() \
+ VMOVQ_SI_X12(2*8); \
+ VMOVQ_SI_X13(4*8); \
+ VMOVQ_SI_X14(6*8); \
+ VMOVQ_SI_X15_0; \
+ VPINSRQ_1_SI_X12(5*8); \
+ VPINSRQ_1_SI_X13(15*8); \
+ VPINSRQ_1_SI_X14(10*8); \
+ VPINSRQ_1_SI_X15(8*8)
+
+// load msg: X12 = (9, 5), X13 = (2, 10), X14 = (0, 7), X15 = (4, 15)
+#define LOAD_MSG_AVX_9_5_2_10_0_7_4_15() \
+ VMOVQ_SI_X12(9*8); \
+ VMOVQ_SI_X13(2*8); \
+ VMOVQ_SI_X14_0; \
+ VMOVQ_SI_X15(4*8); \
+ VPINSRQ_1_SI_X12(5*8); \
+ VPINSRQ_1_SI_X13(10*8); \
+ VPINSRQ_1_SI_X14(7*8); \
+ VPINSRQ_1_SI_X15(15*8)
+
+// load msg: X12 = (2, 6), X13 = (0, 8), X14 = (12, 10), X15 = (11, 3)
+#define LOAD_MSG_AVX_2_6_0_8_12_10_11_3() \
+ VMOVQ_SI_X12(2*8); \
+ VMOVQ_SI_X13_0; \
+ VMOVQ_SI_X14(12*8); \
+ VMOVQ_SI_X15(11*8); \
+ VPINSRQ_1_SI_X12(6*8); \
+ VPINSRQ_1_SI_X13(8*8); \
+ VPINSRQ_1_SI_X14(10*8); \
+ VPINSRQ_1_SI_X15(3*8)
+
+// load msg: X12 = (0, 6), X13 = (9, 8), X14 = (7, 3), X15 = (2, 11)
+#define LOAD_MSG_AVX_0_6_9_8_7_3_2_11() \
+ MOVQ 0*8(SI), X12; \
+ VPSHUFD $0x4E, 8*8(SI), X13; \
+ MOVQ 7*8(SI), X14; \
+ MOVQ 2*8(SI), X15; \
+ VPINSRQ_1_SI_X12(6*8); \
+ VPINSRQ_1_SI_X14(3*8); \
+ VPINSRQ_1_SI_X15(11*8)
+
+// load msg: X12 = (6, 14), X13 = (11, 0), X14 = (15, 9), X15 = (3, 8)
+#define LOAD_MSG_AVX_6_14_11_0_15_9_3_8() \
+ MOVQ 6*8(SI), X12; \
+ MOVQ 11*8(SI), X13; \
+ MOVQ 15*8(SI), X14; \
+ MOVQ 3*8(SI), X15; \
+ VPINSRQ_1_SI_X12(14*8); \
+ VPINSRQ_1_SI_X13_0; \
+ VPINSRQ_1_SI_X14(9*8); \
+ VPINSRQ_1_SI_X15(8*8)
+
+// load msg: X12 = (5, 15), X13 = (8, 2), X14 = (0, 4), X15 = (6, 10)
+#define LOAD_MSG_AVX_5_15_8_2_0_4_6_10() \
+ MOVQ 5*8(SI), X12; \
+ MOVQ 8*8(SI), X13; \
+ MOVQ 0*8(SI), X14; \
+ MOVQ 6*8(SI), X15; \
+ VPINSRQ_1_SI_X12(15*8); \
+ VPINSRQ_1_SI_X13(2*8); \
+ VPINSRQ_1_SI_X14(4*8); \
+ VPINSRQ_1_SI_X15(10*8)
+
+// load msg: X12 = (12, 13), X13 = (1, 10), X14 = (2, 7), X15 = (4, 5)
+#define LOAD_MSG_AVX_12_13_1_10_2_7_4_5() \
+ VMOVDQU 12*8(SI), X12; \
+ MOVQ 1*8(SI), X13; \
+ MOVQ 2*8(SI), X14; \
+ VPINSRQ_1_SI_X13(10*8); \
+ VPINSRQ_1_SI_X14(7*8); \
+ VMOVDQU 4*8(SI), X15
+
+// load msg: X12 = (15, 9), X13 = (3, 13), X14 = (11, 14), X15 = (12, 0)
+#define LOAD_MSG_AVX_15_9_3_13_11_14_12_0() \
+ MOVQ 15*8(SI), X12; \
+ MOVQ 3*8(SI), X13; \
+ MOVQ 11*8(SI), X14; \
+ MOVQ 12*8(SI), X15; \
+ VPINSRQ_1_SI_X12(9*8); \
+ VPINSRQ_1_SI_X13(13*8); \
+ VPINSRQ_1_SI_X14(14*8); \
+ VPINSRQ_1_SI_X15_0
// func hashBlocksAVX(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte)
TEXT ·hashBlocksAVX(SB), 4, $288-48 // frame size = 272 + 16 byte alignment
@@ -331,15 +590,17 @@ TEXT ·hashBlocksAVX(SB), 4, $288-48 // frame size = 272 + 16 byte alignment
ANDQ $~15, R9
MOVQ R9, SP
- MOVOU ·AVX_c40<>(SB), X13
- MOVOU ·AVX_c48<>(SB), X14
+ VMOVDQU ·AVX_c40<>(SB), X0
+ VMOVDQU ·AVX_c48<>(SB), X1
+ VMOVDQA X0, X8
+ VMOVDQA X1, X9
VMOVDQU ·AVX_iv3<>(SB), X0
VMOVDQA X0, 0(SP)
XORQ CX, 0(SP) // 0(SP) = ·AVX_iv3 ^ (CX || 0)
- VMOVDQU 0(AX), X12
- VMOVDQU 16(AX), X15
+ VMOVDQU 0(AX), X10
+ VMOVDQU 16(AX), X11
VMOVDQU 32(AX), X2
VMOVDQU 48(AX), X3
@@ -353,124 +614,124 @@ loop:
INCQ R9
noinc:
- MOVQ R8, X8
- VPINSRQ_1_R9_X8_X8
+ VMOVQ_R8_X15
+ VPINSRQ_1_R9_X15
- VMOVDQA X12, X0
- VMOVDQA X15, X1
+ VMOVDQA X10, X0
+ VMOVDQA X11, X1
VMOVDQU ·AVX_iv0<>(SB), X4
VMOVDQU ·AVX_iv1<>(SB), X5
VMOVDQU ·AVX_iv2<>(SB), X6
- VPXOR X8, X6, X6
+ VPXOR X15, X6, X6
VMOVDQA 0(SP), X7
- LOAD_MSG_AVX(SI, 0, 2, 4, 6, 1, 3, 5, 7)
- VMOVDQA X8, 16(SP)
- VMOVDQA X9, 32(SP)
- VMOVDQA X10, 48(SP)
- VMOVDQA X11, 64(SP)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_0_2_4_6_1_3_5_7()
+ VMOVDQA X12, 16(SP)
+ VMOVDQA X13, 32(SP)
+ VMOVDQA X14, 48(SP)
+ VMOVDQA X15, 64(SP)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 8, 10, 12, 14, 9, 11, 13, 15)
- VMOVDQA X8, 80(SP)
- VMOVDQA X9, 96(SP)
- VMOVDQA X10, 112(SP)
- VMOVDQA X11, 128(SP)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(8, 10, 12, 14, 9, 11, 13, 15)
+ VMOVDQA X12, 80(SP)
+ VMOVDQA X13, 96(SP)
+ VMOVDQA X14, 112(SP)
+ VMOVDQA X15, 128(SP)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 14, 4, 9, 13, 10, 8, 15, 6)
- VMOVDQA X8, 144(SP)
- VMOVDQA X9, 160(SP)
- VMOVDQA X10, 176(SP)
- VMOVDQA X11, 192(SP)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(14, 4, 9, 13, 10, 8, 15, 6)
+ VMOVDQA X12, 144(SP)
+ VMOVDQA X13, 160(SP)
+ VMOVDQA X14, 176(SP)
+ VMOVDQA X15, 192(SP)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 1, 0, 11, 5, 12, 2, 7, 3)
- VMOVDQA X8, 208(SP)
- VMOVDQA X9, 224(SP)
- VMOVDQA X10, 240(SP)
- VMOVDQA X11, 256(SP)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_1_0_11_5_12_2_7_3()
+ VMOVDQA X12, 208(SP)
+ VMOVDQA X13, 224(SP)
+ VMOVDQA X14, 240(SP)
+ VMOVDQA X15, 256(SP)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 11, 12, 5, 15, 8, 0, 2, 13)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_11_12_5_15_8_0_2_13()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 10, 3, 7, 9, 14, 6, 1, 4)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(10, 3, 7, 9, 14, 6, 1, 4)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 7, 3, 13, 11, 9, 1, 12, 14)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(7, 3, 13, 11, 9, 1, 12, 14)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 2, 5, 4, 15, 6, 10, 0, 8)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_2_5_4_15_6_10_0_8()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 9, 5, 2, 10, 0, 7, 4, 15)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_9_5_2_10_0_7_4_15()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 14, 11, 6, 3, 1, 12, 8, 13)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(14, 11, 6, 3, 1, 12, 8, 13)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 2, 6, 0, 8, 12, 10, 11, 3)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_2_6_0_8_12_10_11_3()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 4, 7, 15, 1, 13, 5, 14, 9)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(4, 7, 15, 1, 13, 5, 14, 9)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 12, 1, 14, 4, 5, 15, 13, 10)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(12, 1, 14, 4, 5, 15, 13, 10)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 0, 6, 9, 8, 7, 3, 2, 11)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_0_6_9_8_7_3_2_11()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 13, 7, 12, 3, 11, 14, 1, 9)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(13, 7, 12, 3, 11, 14, 1, 9)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 5, 15, 8, 2, 0, 4, 6, 10)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_5_15_8_2_0_4_6_10()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 6, 14, 11, 0, 15, 9, 3, 8)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_6_14_11_0_15_9_3_8()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 12, 13, 1, 10, 2, 7, 4, 5)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_12_13_1_10_2_7_4_5()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- LOAD_MSG_AVX(SI, 10, 8, 7, 1, 2, 4, 6, 5)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX(10, 8, 7, 1, 2, 4, 6, 5)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX()
- LOAD_MSG_AVX(SI, 15, 9, 3, 13, 11, 14, 12, 0)
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X11, X13, X14)
+ LOAD_MSG_AVX_15_9_3_13_11_14_12_0()
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, X12, X13, X14, X15, X15, X8, X9)
SHUFFLE_AVX_INV()
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 16(SP), 32(SP), 48(SP), 64(SP), X11, X13, X14)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 16(SP), 32(SP), 48(SP), 64(SP), X15, X8, X9)
SHUFFLE_AVX()
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 80(SP), 96(SP), 112(SP), 128(SP), X11, X13, X14)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 80(SP), 96(SP), 112(SP), 128(SP), X15, X8, X9)
SHUFFLE_AVX_INV()
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 144(SP), 160(SP), 176(SP), 192(SP), X11, X13, X14)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 144(SP), 160(SP), 176(SP), 192(SP), X15, X8, X9)
SHUFFLE_AVX()
- HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 208(SP), 224(SP), 240(SP), 256(SP), X11, X13, X14)
+ HALF_ROUND_AVX(X0, X1, X2, X3, X4, X5, X6, X7, 208(SP), 224(SP), 240(SP), 256(SP), X15, X8, X9)
SHUFFLE_AVX_INV()
- VMOVDQU 32(AX), X10
- VMOVDQU 48(AX), X11
- VPXOR X0, X12, X12
- VPXOR X1, X15, X15
- VPXOR X2, X10, X10
- VPXOR X3, X11, X11
- VPXOR X4, X12, X12
- VPXOR X5, X15, X15
- VPXOR X6, X10, X2
- VPXOR X7, X11, X3
+ VMOVDQU 32(AX), X14
+ VMOVDQU 48(AX), X15
+ VPXOR X0, X10, X10
+ VPXOR X1, X11, X11
+ VPXOR X2, X14, X14
+ VPXOR X3, X15, X15
+ VPXOR X4, X10, X10
+ VPXOR X5, X11, X11
+ VPXOR X6, X14, X2
+ VPXOR X7, X15, X3
VMOVDQU X2, 32(AX)
VMOVDQU X3, 48(AX)
@@ -478,12 +739,11 @@ noinc:
SUBQ $128, DI
JNE loop
- VMOVDQU X12, 0(AX)
- VMOVDQU X15, 16(AX)
+ VMOVDQU X10, 0(AX)
+ VMOVDQU X11, 16(AX)
MOVQ R8, 0(BX)
MOVQ R9, 8(BX)
-
VZEROUPPER
MOVQ BP, SP
diff --git a/vendor/golang.org/x/crypto/blake2b/register.go b/vendor/golang.org/x/crypto/blake2b/register.go
new file mode 100644
index 000000000..efd689af4
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2b/register.go
@@ -0,0 +1,32 @@
+// 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.
+
+// +build go1.9
+
+package blake2b
+
+import (
+ "crypto"
+ "hash"
+)
+
+func init() {
+ newHash256 := func() hash.Hash {
+ h, _ := New256(nil)
+ return h
+ }
+ newHash384 := func() hash.Hash {
+ h, _ := New384(nil)
+ return h
+ }
+
+ newHash512 := func() hash.Hash {
+ h, _ := New512(nil)
+ return h
+ }
+
+ crypto.RegisterHash(crypto.BLAKE2b_256, newHash256)
+ crypto.RegisterHash(crypto.BLAKE2b_384, newHash384)
+ crypto.RegisterHash(crypto.BLAKE2b_512, newHash512)
+}
diff --git a/vendor/golang.org/x/crypto/blake2s/register.go b/vendor/golang.org/x/crypto/blake2s/register.go
new file mode 100644
index 000000000..d277459a1
--- /dev/null
+++ b/vendor/golang.org/x/crypto/blake2s/register.go
@@ -0,0 +1,21 @@
+// 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.
+
+// +build go1.9
+
+package blake2s
+
+import (
+ "crypto"
+ "hash"
+)
+
+func init() {
+ newHash256 := func() hash.Hash {
+ h, _ := New256(nil)
+ return h
+ }
+
+ crypto.RegisterHash(crypto.BLAKE2s_256, newHash256)
+}
diff --git a/vendor/golang.org/x/crypto/cryptobyte/asn1.go b/vendor/golang.org/x/crypto/cryptobyte/asn1.go
new file mode 100644
index 000000000..166e22d7b
--- /dev/null
+++ b/vendor/golang.org/x/crypto/cryptobyte/asn1.go
@@ -0,0 +1,604 @@
+// 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.
+
+package cryptobyte
+
+import (
+ "encoding/asn1"
+ "fmt"
+ "math/big"
+ "reflect"
+ "time"
+)
+
+// This file contains ASN.1-related methods for String and Builder.
+
+// Tag represents an ASN.1 tag number and class (together also referred to as
+// identifier octets). Methods in this package only support the low-tag-number
+// form, i.e. a single identifier octet with bits 7-8 encoding the class and
+// bits 1-6 encoding the tag number.
+type Tag uint8
+
+// Contructed returns t with the context-specific class bit set.
+func (t Tag) ContextSpecific() Tag { return t | 0x80 }
+
+// Contructed returns t with the constructed class bit set.
+func (t Tag) Constructed() Tag { return t | 0x20 }
+
+// Builder
+
+// AddASN1Int64 appends a DER-encoded ASN.1 INTEGER.
+func (b *Builder) AddASN1Int64(v int64) {
+ b.addASN1Signed(asn1.TagInteger, v)
+}
+
+// AddASN1Enum appends a DER-encoded ASN.1 ENUMERATION.
+func (b *Builder) AddASN1Enum(v int64) {
+ b.addASN1Signed(asn1.TagEnum, v)
+}
+
+func (b *Builder) addASN1Signed(tag Tag, v int64) {
+ b.AddASN1(tag, func(c *Builder) {
+ length := 1
+ for i := v; i >= 0x80 || i < -0x80; i >>= 8 {
+ length++
+ }
+
+ for ; length > 0; length-- {
+ i := v >> uint((length-1)*8) & 0xff
+ c.AddUint8(uint8(i))
+ }
+ })
+}
+
+// AddASN1Uint64 appends a DER-encoded ASN.1 INTEGER.
+func (b *Builder) AddASN1Uint64(v uint64) {
+ b.AddASN1(asn1.TagInteger, func(c *Builder) {
+ length := 1
+ for i := v; i >= 0x80; i >>= 8 {
+ length++
+ }
+
+ for ; length > 0; length-- {
+ i := v >> uint((length-1)*8) & 0xff
+ c.AddUint8(uint8(i))
+ }
+ })
+}
+
+// AddASN1BigInt appends a DER-encoded ASN.1 INTEGER.
+func (b *Builder) AddASN1BigInt(n *big.Int) {
+ if b.err != nil {
+ return
+ }
+
+ b.AddASN1(asn1.TagInteger, func(c *Builder) {
+ if n.Sign() < 0 {
+ // A negative number has to be converted to two's-complement form. So we
+ // invert and subtract 1. If the most-significant-bit isn't set then
+ // we'll need to pad the beginning with 0xff in order to keep the number
+ // negative.
+ nMinus1 := new(big.Int).Neg(n)
+ nMinus1.Sub(nMinus1, bigOne)
+ bytes := nMinus1.Bytes()
+ for i := range bytes {
+ bytes[i] ^= 0xff
+ }
+ if bytes[0]&0x80 == 0 {
+ c.add(0xff)
+ }
+ c.add(bytes...)
+ } else if n.Sign() == 0 {
+ c.add(0)
+ } else {
+ bytes := n.Bytes()
+ if bytes[0]&0x80 != 0 {
+ c.add(0)
+ }
+ c.add(bytes...)
+ }
+ })
+}
+
+// AddASN1OctetString appends a DER-encoded ASN.1 OCTET STRING.
+func (b *Builder) AddASN1OctetString(bytes []byte) {
+ b.AddASN1(asn1.TagOctetString, func(c *Builder) {
+ c.AddBytes(bytes)
+ })
+}
+
+const generalizedTimeFormatStr = "20060102150405Z0700"
+
+// AddASN1GeneralizedTime appends a DER-encoded ASN.1 GENERALIZEDTIME.
+func (b *Builder) AddASN1GeneralizedTime(t time.Time) {
+ if t.Year() < 0 || t.Year() > 9999 {
+ b.err = fmt.Errorf("cryptobyte: cannot represent %v as a GeneralizedTime", t)
+ return
+ }
+ b.AddASN1(asn1.TagGeneralizedTime, func(c *Builder) {
+ c.AddBytes([]byte(t.Format(generalizedTimeFormatStr)))
+ })
+}
+
+// AddASN1BitString appends a DER-encoded ASN.1 BIT STRING.
+func (b *Builder) AddASN1BitString(s asn1.BitString) {
+ // TODO(martinkr): Implement.
+ b.MarshalASN1(s)
+}
+
+// MarshalASN1 calls asn1.Marshal on its input and appends the result if
+// successful or records an error if one occurred.
+func (b *Builder) MarshalASN1(v interface{}) {
+ // NOTE(martinkr): This is somewhat of a hack to allow propagation of
+ // asn1.Marshal errors into Builder.err. N.B. if you call MarshalASN1 with a
+ // value embedded into a struct, its tag information is lost.
+ if b.err != nil {
+ return
+ }
+ bytes, err := asn1.Marshal(v)
+ if err != nil {
+ b.err = err
+ return
+ }
+ b.AddBytes(bytes)
+}
+
+// AddASN1 appends an ASN.1 object. The object is prefixed with the given tag.
+// Tags greater than 30 are not supported and result in an error (i.e.
+// low-tag-number form only). The child builder passed to the
+// BuilderContinuation can be used to build the content of the ASN.1 object.
+func (b *Builder) AddASN1(tag Tag, f BuilderContinuation) {
+ if b.err != nil {
+ return
+ }
+ // Identifiers with the low five bits set indicate high-tag-number format
+ // (two or more octets), which we don't support.
+ if tag&0x1f == 0x1f {
+ b.err = fmt.Errorf("cryptobyte: high-tag number identifier octects not supported: 0x%x", tag)
+ return
+ }
+ b.AddUint8(uint8(tag))
+ b.addLengthPrefixed(1, true, f)
+}
+
+// String
+
+var bigIntType = reflect.TypeOf((*big.Int)(nil)).Elem()
+
+// ReadASN1Integer decodes an ASN.1 INTEGER into out and advances. If out does
+// not point to an integer or to a big.Int, it panics. It returns true on
+// success and false on error.
+func (s *String) ReadASN1Integer(out interface{}) bool {
+ if reflect.TypeOf(out).Kind() != reflect.Ptr {
+ panic("out is not a pointer")
+ }
+ switch reflect.ValueOf(out).Elem().Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ var i int64
+ if !s.readASN1Int64(&i) || reflect.ValueOf(out).Elem().OverflowInt(i) {
+ return false
+ }
+ reflect.ValueOf(out).Elem().SetInt(i)
+ return true
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ var u uint64
+ if !s.readASN1Uint64(&u) || reflect.ValueOf(out).Elem().OverflowUint(u) {
+ return false
+ }
+ reflect.ValueOf(out).Elem().SetUint(u)
+ return true
+ case reflect.Struct:
+ if reflect.TypeOf(out).Elem() == bigIntType {
+ return s.readASN1BigInt(out.(*big.Int))
+ }
+ }
+ panic("out does not point to an integer type")
+}
+
+func checkASN1Integer(bytes []byte) bool {
+ if len(bytes) == 0 {
+ // An INTEGER is encoded with at least one octet.
+ return false
+ }
+ if len(bytes) == 1 {
+ return true
+ }
+ if bytes[0] == 0 && bytes[1]&0x80 == 0 || bytes[0] == 0xff && bytes[1]&0x80 == 0x80 {
+ // Value is not minimally encoded.
+ return false
+ }
+ return true
+}
+
+var bigOne = big.NewInt(1)
+
+func (s *String) readASN1BigInt(out *big.Int) bool {
+ var bytes String
+ if !s.ReadASN1(&bytes, asn1.TagInteger) || !checkASN1Integer(bytes) {
+ return false
+ }
+ if bytes[0]&0x80 == 0x80 {
+ // Negative number.
+ neg := make([]byte, len(bytes))
+ for i, b := range bytes {
+ neg[i] = ^b
+ }
+ out.SetBytes(neg)
+ out.Add(out, bigOne)
+ out.Neg(out)
+ } else {
+ out.SetBytes(bytes)
+ }
+ return true
+}
+
+func (s *String) readASN1Int64(out *int64) bool {
+ var bytes String
+ if !s.ReadASN1(&bytes, asn1.TagInteger) || !checkASN1Integer(bytes) || !asn1Signed(out, bytes) {
+ return false
+ }
+ return true
+}
+
+func asn1Signed(out *int64, n []byte) bool {
+ length := len(n)
+ if length > 8 {
+ return false
+ }
+ for i := 0; i < length; i++ {
+ *out <<= 8
+ *out |= int64(n[i])
+ }
+ // Shift up and down in order to sign extend the result.
+ *out <<= 64 - uint8(length)*8
+ *out >>= 64 - uint8(length)*8
+ return true
+}
+
+func (s *String) readASN1Uint64(out *uint64) bool {
+ var bytes String
+ if !s.ReadASN1(&bytes, asn1.TagInteger) || !checkASN1Integer(bytes) || !asn1Unsigned(out, bytes) {
+ return false
+ }
+ return true
+}
+
+func asn1Unsigned(out *uint64, n []byte) bool {
+ length := len(n)
+ if length > 9 || length == 9 && n[0] != 0 {
+ // Too large for uint64.
+ return false
+ }
+ if n[0]&0x80 != 0 {
+ // Negative number.
+ return false
+ }
+ for i := 0; i < length; i++ {
+ *out <<= 8
+ *out |= uint64(n[i])
+ }
+ return true
+}
+
+// ReadASN1Enum decodes an ASN.1 ENUMERATION into out and advances. It returns
+// true on success and false on error.
+func (s *String) ReadASN1Enum(out *int) bool {
+ var bytes String
+ var i int64
+ if !s.ReadASN1(&bytes, asn1.TagEnum) || !checkASN1Integer(bytes) || !asn1Signed(&i, bytes) {
+ return false
+ }
+ if int64(int(i)) != i {
+ return false
+ }
+ *out = int(i)
+ return true
+}
+
+func (s *String) readBase128Int(out *int) bool {
+ ret := 0
+ for i := 0; len(*s) > 0; i++ {
+ if i == 4 {
+ return false
+ }
+ ret <<= 7
+ b := s.read(1)[0]
+ ret |= int(b & 0x7f)
+ if b&0x80 == 0 {
+ *out = ret
+ return true
+ }
+ }
+ return false // truncated
+}
+
+// ReadASN1ObjectIdentifier decodes an ASN.1 OBJECT IDENTIFIER into out and
+// advances. It returns true on success and false on error.
+func (s *String) ReadASN1ObjectIdentifier(out *asn1.ObjectIdentifier) bool {
+ var bytes String
+ if !s.ReadASN1(&bytes, asn1.TagOID) || len(bytes) == 0 {
+ return false
+ }
+
+ // In the worst case, we get two elements from the first byte (which is
+ // encoded differently) and then every varint is a single byte long.
+ components := make([]int, len(bytes)+1)
+
+ // The first varint is 40*value1 + value2:
+ // According to this packing, value1 can take the values 0, 1 and 2 only.
+ // When value1 = 0 or value1 = 1, then value2 is <= 39. When value1 = 2,
+ // then there are no restrictions on value2.
+ var v int
+ if !bytes.readBase128Int(&v) {
+ return false
+ }
+ if v < 80 {
+ components[0] = v / 40
+ components[1] = v % 40
+ } else {
+ components[0] = 2
+ components[1] = v - 80
+ }
+
+ i := 2
+ for ; len(bytes) > 0; i++ {
+ if !bytes.readBase128Int(&v) {
+ return false
+ }
+ components[i] = v
+ }
+ *out = components[:i]
+ return true
+}
+
+// ReadASN1GeneralizedTime decodes an ASN.1 GENERALIZEDTIME into out and
+// advances. It returns true on success and false on error.
+func (s *String) ReadASN1GeneralizedTime(out *time.Time) bool {
+ var bytes String
+ if !s.ReadASN1(&bytes, asn1.TagGeneralizedTime) {
+ return false
+ }
+ t := string(bytes)
+ res, err := time.Parse(generalizedTimeFormatStr, t)
+ if err != nil {
+ return false
+ }
+ if serialized := res.Format(generalizedTimeFormatStr); serialized != t {
+ return false
+ }
+ *out = res
+ return true
+}
+
+// ReadASN1BitString decodes an ASN.1 BIT STRING into out and advances. It
+// returns true on success and false on error.
+func (s *String) ReadASN1BitString(out *asn1.BitString) bool {
+ var bytes String
+ if !s.ReadASN1(&bytes, asn1.TagBitString) || len(bytes) == 0 {
+ return false
+ }
+
+ paddingBits := uint8(bytes[0])
+ bytes = bytes[1:]
+ if paddingBits > 7 ||
+ len(bytes) == 0 && paddingBits != 0 ||
+ len(bytes) > 0 && bytes[len(bytes)-1]&(1<<paddingBits-1) != 0 {
+ return false
+ }
+
+ out.BitLength = len(bytes)*8 - int(paddingBits)
+ out.Bytes = bytes
+ return true
+}
+
+// ReadASN1Bytes reads the contents of a DER-encoded ASN.1 element (not including
+// tag and length bytes) into out, and advances. The element must match the
+// given tag. It returns true on success and false on error.
+func (s *String) ReadASN1Bytes(out *[]byte, tag Tag) bool {
+ return s.ReadASN1((*String)(out), tag)
+}
+
+// ReadASN1 reads the contents of a DER-encoded ASN.1 element (not including
+// tag and length bytes) into out, and advances. The element must match the
+// given tag. It returns true on success and false on error.
+//
+// Tags greater than 30 are not supported (i.e. low-tag-number format only).
+func (s *String) ReadASN1(out *String, tag Tag) bool {
+ var t Tag
+ if !s.ReadAnyASN1(out, &t) || t != tag {
+ return false
+ }
+ return true
+}
+
+// ReadASN1Element reads the contents of a DER-encoded ASN.1 element (including
+// tag and length bytes) into out, and advances. The element must match the
+// given tag. It returns true on success and false on error.
+//
+// Tags greater than 30 are not supported (i.e. low-tag-number format only).
+func (s *String) ReadASN1Element(out *String, tag Tag) bool {
+ var t Tag
+ if !s.ReadAnyASN1Element(out, &t) || t != tag {
+ return false
+ }
+ return true
+}
+
+// ReadAnyASN1 reads the contents of a DER-encoded ASN.1 element (not including
+// tag and length bytes) into out, sets outTag to its tag, and advances. It
+// returns true on success and false on error.
+//
+// Tags greater than 30 are not supported (i.e. low-tag-number format only).
+func (s *String) ReadAnyASN1(out *String, outTag *Tag) bool {
+ return s.readASN1(out, outTag, true /* skip header */)
+}
+
+// ReadAnyASN1Element reads the contents of a DER-encoded ASN.1 element
+// (including tag and length bytes) into out, sets outTag to is tag, and
+// advances. It returns true on success and false on error.
+//
+// Tags greater than 30 are not supported (i.e. low-tag-number format only).
+func (s *String) ReadAnyASN1Element(out *String, outTag *Tag) bool {
+ return s.readASN1(out, outTag, false /* include header */)
+}
+
+// PeekASN1Tag returns true if the next ASN.1 value on the string starts with
+// the given tag.
+func (s String) PeekASN1Tag(tag Tag) bool {
+ if len(s) == 0 {
+ return false
+ }
+ return Tag(s[0]) == tag
+}
+
+// ReadOptionalASN1 attempts to read the contents of a DER-encoded ASN.Element
+// (not including tag and length bytes) tagged with the given tag into out. It
+// stores whether an element with the tag was found in outPresent, unless
+// outPresent is nil. It returns true on success and false on error.
+func (s *String) ReadOptionalASN1(out *String, outPresent *bool, tag Tag) bool {
+ present := s.PeekASN1Tag(tag)
+ if outPresent != nil {
+ *outPresent = present
+ }
+ if present && !s.ReadASN1(out, tag) {
+ return false
+ }
+ return true
+}
+
+// ReadOptionalASN1Integer attempts to read an optional ASN.1 INTEGER
+// explicitly tagged with tag into out and advances. If no element with a
+// matching tag is present, it writes defaultValue into out instead. If out
+// does not point to an integer or to a big.Int, it panics. It returns true on
+// success and false on error.
+func (s *String) ReadOptionalASN1Integer(out interface{}, tag Tag, defaultValue interface{}) bool {
+ if reflect.TypeOf(out).Kind() != reflect.Ptr {
+ panic("out is not a pointer")
+ }
+ var present bool
+ var i String
+ if !s.ReadOptionalASN1(&i, &present, tag) {
+ return false
+ }
+ if !present {
+ switch reflect.ValueOf(out).Elem().Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+ reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ reflect.ValueOf(out).Elem().Set(reflect.ValueOf(defaultValue))
+ case reflect.Struct:
+ if reflect.TypeOf(out).Elem() != bigIntType {
+ panic("invalid integer type")
+ }
+ if reflect.TypeOf(defaultValue).Kind() != reflect.Ptr ||
+ reflect.TypeOf(defaultValue).Elem() != bigIntType {
+ panic("out points to big.Int, but defaultValue does not")
+ }
+ out.(*big.Int).Set(defaultValue.(*big.Int))
+ default:
+ panic("invalid integer type")
+ }
+ return true
+ }
+ if !i.ReadASN1Integer(out) || !i.Empty() {
+ return false
+ }
+ return true
+}
+
+// ReadOptionalASN1OctetString attempts to read an optional ASN.1 OCTET STRING
+// explicitly tagged with tag into out and advances. If no element with a
+// matching tag is present, it writes defaultValue into out instead. It returns
+// true on success and false on error.
+func (s *String) ReadOptionalASN1OctetString(out *[]byte, outPresent *bool, tag Tag) bool {
+ var present bool
+ var child String
+ if !s.ReadOptionalASN1(&child, &present, tag) {
+ return false
+ }
+ if outPresent != nil {
+ *outPresent = present
+ }
+ if present {
+ var oct String
+ if !child.ReadASN1(&oct, asn1.TagOctetString) || !child.Empty() {
+ return false
+ }
+ *out = oct
+ } else {
+ *out = nil
+ }
+ return true
+}
+
+func (s *String) readASN1(out *String, outTag *Tag, skipHeader bool) bool {
+ if len(*s) < 2 {
+ return false
+ }
+ tag, lenByte := (*s)[0], (*s)[1]
+
+ if tag&0x1f == 0x1f {
+ // ITU-T X.690 section 8.1.2
+ //
+ // An identifier octet with a tag part of 0x1f indicates a high-tag-number
+ // form identifier with two or more octets. We only support tags less than
+ // 31 (i.e. low-tag-number form, single octet identifier).
+ return false
+ }
+
+ if outTag != nil {
+ *outTag = Tag(tag)
+ }
+
+ // ITU-T X.690 section 8.1.3
+ //
+ // Bit 8 of the first length byte indicates whether the length is short- or
+ // long-form.
+ var length, headerLen uint32 // length includes headerLen
+ if lenByte&0x80 == 0 {
+ // Short-form length (section 8.1.3.4), encoded in bits 1-7.
+ length = uint32(lenByte) + 2
+ headerLen = 2
+ } else {
+ // Long-form length (section 8.1.3.5). Bits 1-7 encode the number of octets
+ // used to encode the length.
+ lenLen := lenByte & 0x7f
+ var len32 uint32
+
+ if lenLen == 0 || lenLen > 4 || len(*s) < int(2+lenLen) {
+ return false
+ }
+
+ lenBytes := String((*s)[2 : 2+lenLen])
+ if !lenBytes.readUnsigned(&len32, int(lenLen)) {
+ return false
+ }
+
+ // ITU-T X.690 section 10.1 (DER length forms) requires encoding the length
+ // with the minimum number of octets.
+ if len32 < 128 {
+ // Length should have used short-form encoding.
+ return false
+ }
+ if len32>>((lenLen-1)*8) == 0 {
+ // Leading octet is 0. Length should have been at least one byte shorter.
+ return false
+ }
+
+ headerLen = 2 + uint32(lenLen)
+ if headerLen+len32 < len32 {
+ // Overflow.
+ return false
+ }
+ length = headerLen + len32
+ }
+
+ if uint32(int(length)) != length || !s.ReadBytes((*[]byte)(out), int(length)) {
+ return false
+ }
+ if skipHeader && !out.Skip(int(headerLen)) {
+ panic("cryptobyte: internal error")
+ }
+
+ return true
+}
diff --git a/vendor/golang.org/x/crypto/cryptobyte/asn1_test.go b/vendor/golang.org/x/crypto/cryptobyte/asn1_test.go
new file mode 100644
index 000000000..c8c187032
--- /dev/null
+++ b/vendor/golang.org/x/crypto/cryptobyte/asn1_test.go
@@ -0,0 +1,285 @@
+// 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.
+
+package cryptobyte
+
+import (
+ "bytes"
+ "encoding/asn1"
+ "math/big"
+ "reflect"
+ "testing"
+ "time"
+)
+
+type readASN1Test struct {
+ name string
+ in []byte
+ tag Tag
+ ok bool
+ out interface{}
+}
+
+var readASN1TestData = []readASN1Test{
+ {"valid", []byte{0x30, 2, 1, 2}, 0x30, true, []byte{1, 2}},
+ {"truncated", []byte{0x30, 3, 1, 2}, 0x30, false, nil},
+ {"zero length of length", []byte{0x30, 0x80}, 0x30, false, nil},
+ {"invalid long form length", []byte{0x30, 0x81, 1, 1}, 0x30, false, nil},
+ {"non-minimal length", append([]byte{0x30, 0x82, 0, 0x80}, make([]byte, 0x80)...), 0x30, false, nil},
+ {"invalid tag", []byte{0xa1, 3, 0x4, 1, 1}, 31, false, nil},
+ {"high tag", []byte{0x1f, 0x81, 0x80, 0x01, 2, 1, 2}, 0xff /* actually 0x4001, but tag is uint8 */, false, nil},
+}
+
+func TestReadASN1(t *testing.T) {
+ for _, test := range readASN1TestData {
+ t.Run(test.name, func(t *testing.T) {
+ var in, out String = test.in, nil
+ ok := in.ReadASN1(&out, test.tag)
+ if ok != test.ok || ok && !bytes.Equal(out, test.out.([]byte)) {
+ t.Errorf("in.ReadASN1() = %v, want %v; out = %v, want %v", ok, test.ok, out, test.out)
+ }
+ })
+ }
+}
+
+func TestReadASN1Optional(t *testing.T) {
+ var empty String
+ var present bool
+ ok := empty.ReadOptionalASN1(nil, &present, 0xa0)
+ if !ok || present {
+ t.Errorf("empty.ReadOptionalASN1() = %v, want true; present = %v want false", ok, present)
+ }
+
+ var in, out String = []byte{0xa1, 3, 0x4, 1, 1}, nil
+ ok = in.ReadOptionalASN1(&out, &present, 0xa0)
+ if !ok || present {
+ t.Errorf("in.ReadOptionalASN1() = %v, want true, present = %v, want false", ok, present)
+ }
+ ok = in.ReadOptionalASN1(&out, &present, 0xa1)
+ wantBytes := []byte{4, 1, 1}
+ if !ok || !present || !bytes.Equal(out, wantBytes) {
+ t.Errorf("in.ReadOptionalASN1() = %v, want true; present = %v, want true; out = %v, want = %v", ok, present, out, wantBytes)
+ }
+}
+
+var optionalOctetStringTestData = []struct {
+ readASN1Test
+ present bool
+}{
+ {readASN1Test{"empty", []byte{}, 0xa0, true, []byte{}}, false},
+ {readASN1Test{"invalid", []byte{0xa1, 3, 0x4, 2, 1}, 0xa1, false, []byte{}}, true},
+ {readASN1Test{"missing", []byte{0xa1, 3, 0x4, 1, 1}, 0xa0, true, []byte{}}, false},
+ {readASN1Test{"present", []byte{0xa1, 3, 0x4, 1, 1}, 0xa1, true, []byte{1}}, true},
+}
+
+func TestReadASN1OptionalOctetString(t *testing.T) {
+ for _, test := range optionalOctetStringTestData {
+ t.Run(test.name, func(t *testing.T) {
+ in := String(test.in)
+ var out []byte
+ var present bool
+ ok := in.ReadOptionalASN1OctetString(&out, &present, test.tag)
+ if ok != test.ok || present != test.present || !bytes.Equal(out, test.out.([]byte)) {
+ t.Errorf("in.ReadOptionalASN1OctetString() = %v, want %v; present = %v want %v; out = %v, want %v", ok, test.ok, present, test.present, out, test.out)
+ }
+ })
+ }
+}
+
+const defaultInt = -1
+
+var optionalIntTestData = []readASN1Test{
+ {"empty", []byte{}, 0xa0, true, defaultInt},
+ {"invalid", []byte{0xa1, 3, 0x2, 2, 127}, 0xa1, false, 0},
+ {"missing", []byte{0xa1, 3, 0x2, 1, 127}, 0xa0, true, defaultInt},
+ {"present", []byte{0xa1, 3, 0x2, 1, 42}, 0xa1, true, 42},
+}
+
+func TestReadASN1OptionalInteger(t *testing.T) {
+ for _, test := range optionalIntTestData {
+ t.Run(test.name, func(t *testing.T) {
+ in := String(test.in)
+ var out int
+ ok := in.ReadOptionalASN1Integer(&out, test.tag, defaultInt)
+ if ok != test.ok || ok && out != test.out.(int) {
+ t.Errorf("in.ReadOptionalASN1Integer() = %v, want %v; out = %v, want %v", ok, test.ok, out, test.out)
+ }
+ })
+ }
+}
+
+func TestReadASN1IntegerSigned(t *testing.T) {
+ testData64 := []struct {
+ in []byte
+ out int64
+ }{
+ {[]byte{2, 3, 128, 0, 0}, -0x800000},
+ {[]byte{2, 2, 255, 0}, -256},
+ {[]byte{2, 2, 255, 127}, -129},
+ {[]byte{2, 1, 128}, -128},
+ {[]byte{2, 1, 255}, -1},
+ {[]byte{2, 1, 0}, 0},
+ {[]byte{2, 1, 1}, 1},
+ {[]byte{2, 1, 2}, 2},
+ {[]byte{2, 1, 127}, 127},
+ {[]byte{2, 2, 0, 128}, 128},
+ {[]byte{2, 2, 1, 0}, 256},
+ {[]byte{2, 4, 0, 128, 0, 0}, 0x800000},
+ }
+ for i, test := range testData64 {
+ in := String(test.in)
+ var out int64
+ ok := in.ReadASN1Integer(&out)
+ if !ok || out != test.out {
+ t.Errorf("#%d: in.ReadASN1Integer() = %v, want true; out = %d, want %d", i, ok, out, test.out)
+ }
+ }
+
+ // Repeat the same cases, reading into a big.Int.
+ t.Run("big.Int", func(t *testing.T) {
+ for i, test := range testData64 {
+ in := String(test.in)
+ var out big.Int
+ ok := in.ReadASN1Integer(&out)
+ if !ok || out.Int64() != test.out {
+ t.Errorf("#%d: in.ReadASN1Integer() = %v, want true; out = %d, want %d", i, ok, out.Int64(), test.out)
+ }
+ }
+ })
+}
+
+func TestReadASN1IntegerUnsigned(t *testing.T) {
+ testData := []struct {
+ in []byte
+ out uint64
+ }{
+ {[]byte{2, 1, 0}, 0},
+ {[]byte{2, 1, 1}, 1},
+ {[]byte{2, 1, 2}, 2},
+ {[]byte{2, 1, 127}, 127},
+ {[]byte{2, 2, 0, 128}, 128},
+ {[]byte{2, 2, 1, 0}, 256},
+ {[]byte{2, 4, 0, 128, 0, 0}, 0x800000},
+ {[]byte{2, 8, 127, 255, 255, 255, 255, 255, 255, 255}, 0x7fffffffffffffff},
+ {[]byte{2, 9, 0, 128, 0, 0, 0, 0, 0, 0, 0}, 0x8000000000000000},
+ {[]byte{2, 9, 0, 255, 255, 255, 255, 255, 255, 255, 255}, 0xffffffffffffffff},
+ }
+ for i, test := range testData {
+ in := String(test.in)
+ var out uint64
+ ok := in.ReadASN1Integer(&out)
+ if !ok || out != test.out {
+ t.Errorf("#%d: in.ReadASN1Integer() = %v, want true; out = %d, want %d", i, ok, out, test.out)
+ }
+ }
+}
+
+func TestReadASN1IntegerInvalid(t *testing.T) {
+ testData := []String{
+ []byte{3, 1, 0}, // invalid tag
+ // truncated
+ []byte{2, 1},
+ []byte{2, 2, 0},
+ // not minimally encoded
+ []byte{2, 2, 0, 1},
+ []byte{2, 2, 0xff, 0xff},
+ }
+
+ for i, test := range testData {
+ var out int64
+ if test.ReadASN1Integer(&out) {
+ t.Errorf("#%d: in.ReadASN1Integer() = true, want false (out = %d)", i, out)
+ }
+ }
+}
+
+func TestReadASN1ObjectIdentifier(t *testing.T) {
+ testData := []struct {
+ in []byte
+ ok bool
+ out []int
+ }{
+ {[]byte{}, false, []int{}},
+ {[]byte{6, 0}, false, []int{}},
+ {[]byte{5, 1, 85}, false, []int{2, 5}},
+ {[]byte{6, 1, 85}, true, []int{2, 5}},
+ {[]byte{6, 2, 85, 0x02}, true, []int{2, 5, 2}},
+ {[]byte{6, 4, 85, 0x02, 0xc0, 0x00}, true, []int{2, 5, 2, 0x2000}},
+ {[]byte{6, 3, 0x81, 0x34, 0x03}, true, []int{2, 100, 3}},
+ {[]byte{6, 7, 85, 0x02, 0xc0, 0x80, 0x80, 0x80, 0x80}, false, []int{}},
+ }
+
+ for i, test := range testData {
+ in := String(test.in)
+ var out asn1.ObjectIdentifier
+ ok := in.ReadASN1ObjectIdentifier(&out)
+ if ok != test.ok || ok && !out.Equal(test.out) {
+ t.Errorf("#%d: in.ReadASN1ObjectIdentifier() = %v, want %v; out = %v, want %v", i, ok, test.ok, out, test.out)
+ }
+ }
+}
+
+func TestReadASN1GeneralizedTime(t *testing.T) {
+ testData := []struct {
+ in string
+ ok bool
+ out time.Time
+ }{
+ {"20100102030405Z", true, time.Date(2010, 01, 02, 03, 04, 05, 0, time.UTC)},
+ {"20100102030405", false, time.Time{}},
+ {"20100102030405+0607", true, time.Date(2010, 01, 02, 03, 04, 05, 0, time.FixedZone("", 6*60*60+7*60))},
+ {"20100102030405-0607", true, time.Date(2010, 01, 02, 03, 04, 05, 0, time.FixedZone("", -6*60*60-7*60))},
+ /* These are invalid times. However, the time package normalises times
+ * and they were accepted in some versions. See #11134. */
+ {"00000100000000Z", false, time.Time{}},
+ {"20101302030405Z", false, time.Time{}},
+ {"20100002030405Z", false, time.Time{}},
+ {"20100100030405Z", false, time.Time{}},
+ {"20100132030405Z", false, time.Time{}},
+ {"20100231030405Z", false, time.Time{}},
+ {"20100102240405Z", false, time.Time{}},
+ {"20100102036005Z", false, time.Time{}},
+ {"20100102030460Z", false, time.Time{}},
+ {"-20100102030410Z", false, time.Time{}},
+ {"2010-0102030410Z", false, time.Time{}},
+ {"2010-0002030410Z", false, time.Time{}},
+ {"201001-02030410Z", false, time.Time{}},
+ {"20100102-030410Z", false, time.Time{}},
+ {"2010010203-0410Z", false, time.Time{}},
+ {"201001020304-10Z", false, time.Time{}},
+ }
+ for i, test := range testData {
+ in := String(append([]byte{asn1.TagGeneralizedTime, byte(len(test.in))}, test.in...))
+ var out time.Time
+ ok := in.ReadASN1GeneralizedTime(&out)
+ if ok != test.ok || ok && !reflect.DeepEqual(out, test.out) {
+ t.Errorf("#%d: in.ReadASN1GeneralizedTime() = %v, want %v; out = %q, want %q", i, ok, test.ok, out, test.out)
+ }
+ }
+}
+
+func TestReadASN1BitString(t *testing.T) {
+ testData := []struct {
+ in []byte
+ ok bool
+ out asn1.BitString
+ }{
+ {[]byte{}, false, asn1.BitString{}},
+ {[]byte{0x00}, true, asn1.BitString{}},
+ {[]byte{0x07, 0x00}, true, asn1.BitString{Bytes: []byte{0}, BitLength: 1}},
+ {[]byte{0x07, 0x01}, false, asn1.BitString{}},
+ {[]byte{0x07, 0x40}, false, asn1.BitString{}},
+ {[]byte{0x08, 0x00}, false, asn1.BitString{}},
+ {[]byte{0xff}, false, asn1.BitString{}},
+ {[]byte{0xfe, 0x00}, false, asn1.BitString{}},
+ }
+ for i, test := range testData {
+ in := String(append([]byte{3, byte(len(test.in))}, test.in...))
+ var out asn1.BitString
+ ok := in.ReadASN1BitString(&out)
+ if ok != test.ok || ok && (!bytes.Equal(out.Bytes, test.out.Bytes) || out.BitLength != test.out.BitLength) {
+ t.Errorf("#%d: in.ReadASN1BitString() = %v, want %v; out = %v, want %v", i, ok, test.ok, out, test.out)
+ }
+ }
+}
diff --git a/vendor/golang.org/x/crypto/cryptobyte/builder.go b/vendor/golang.org/x/crypto/cryptobyte/builder.go
new file mode 100644
index 000000000..9883fb3c3
--- /dev/null
+++ b/vendor/golang.org/x/crypto/cryptobyte/builder.go
@@ -0,0 +1,255 @@
+// 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.
+
+package cryptobyte
+
+import (
+ "errors"
+ "fmt"
+)
+
+// A Builder builds byte strings from fixed-length and length-prefixed values.
+// The zero value is a usable Builder that allocates space as needed.
+type Builder struct {
+ err error
+ result []byte
+ fixedSize bool
+ child *Builder
+ offset int
+ pendingLenLen int
+ pendingIsASN1 bool
+}
+
+// NewBuilder creates a Builder that appends its output to the given buffer.
+// Like append(), the slice will be reallocated if its capacity is exceeded.
+// Use Bytes to get the final buffer.
+func NewBuilder(buffer []byte) *Builder {
+ return &Builder{
+ result: buffer,
+ }
+}
+
+// NewFixedBuilder creates a Builder that appends its output into the given
+// buffer. This builder does not reallocate the output buffer. Writes that
+// would exceed the buffer's capacity are treated as an error.
+func NewFixedBuilder(buffer []byte) *Builder {
+ return &Builder{
+ result: buffer,
+ fixedSize: true,
+ }
+}
+
+// Bytes returns the bytes written by the builder or an error if one has
+// occurred during during building.
+func (b *Builder) Bytes() ([]byte, error) {
+ if b.err != nil {
+ return nil, b.err
+ }
+ return b.result[b.offset:], nil
+}
+
+// BytesOrPanic returns the bytes written by the builder or panics if an error
+// has occurred during building.
+func (b *Builder) BytesOrPanic() []byte {
+ if b.err != nil {
+ panic(b.err)
+ }
+ return b.result[b.offset:]
+}
+
+// AddUint8 appends an 8-bit value to the byte string.
+func (b *Builder) AddUint8(v uint8) {
+ b.add(byte(v))
+}
+
+// AddUint16 appends a big-endian, 16-bit value to the byte string.
+func (b *Builder) AddUint16(v uint16) {
+ b.add(byte(v>>8), byte(v))
+}
+
+// AddUint24 appends a big-endian, 24-bit value to the byte string. The highest
+// byte of the 32-bit input value is silently truncated.
+func (b *Builder) AddUint24(v uint32) {
+ b.add(byte(v>>16), byte(v>>8), byte(v))
+}
+
+// AddUint32 appends a big-endian, 32-bit value to the byte string.
+func (b *Builder) AddUint32(v uint32) {
+ b.add(byte(v>>24), byte(v>>16), byte(v>>8), byte(v))
+}
+
+// AddBytes appends a sequence of bytes to the byte string.
+func (b *Builder) AddBytes(v []byte) {
+ b.add(v...)
+}
+
+// BuilderContinuation is continuation-passing interface for building
+// length-prefixed byte sequences. Builder methods for length-prefixed
+// sequences (AddUint8LengthPrefixed etc.) will invoke the BuilderContinuation
+// supplied to them. The child builder passed to the continuation can be used
+// to build the content of the length-prefixed sequence. Example:
+//
+// parent := cryptobyte.NewBuilder()
+// parent.AddUint8LengthPrefixed(func (child *Builder) {
+// child.AddUint8(42)
+// child.AddUint8LengthPrefixed(func (grandchild *Builder) {
+// grandchild.AddUint8(5)
+// })
+// })
+//
+// It is an error to write more bytes to the child than allowed by the reserved
+// length prefix. After the continuation returns, the child must be considered
+// invalid, i.e. users must not store any copies or references of the child
+// that outlive the continuation.
+type BuilderContinuation func(child *Builder)
+
+// AddUint8LengthPrefixed adds a 8-bit length-prefixed byte sequence.
+func (b *Builder) AddUint8LengthPrefixed(f BuilderContinuation) {
+ b.addLengthPrefixed(1, false, f)
+}
+
+// AddUint16LengthPrefixed adds a big-endian, 16-bit length-prefixed byte sequence.
+func (b *Builder) AddUint16LengthPrefixed(f BuilderContinuation) {
+ b.addLengthPrefixed(2, false, f)
+}
+
+// AddUint24LengthPrefixed adds a big-endian, 24-bit length-prefixed byte sequence.
+func (b *Builder) AddUint24LengthPrefixed(f BuilderContinuation) {
+ b.addLengthPrefixed(3, false, f)
+}
+
+func (b *Builder) addLengthPrefixed(lenLen int, isASN1 bool, f BuilderContinuation) {
+ // Subsequent writes can be ignored if the builder has encountered an error.
+ if b.err != nil {
+ return
+ }
+
+ offset := len(b.result)
+ b.add(make([]byte, lenLen)...)
+
+ b.child = &Builder{
+ result: b.result,
+ fixedSize: b.fixedSize,
+ offset: offset,
+ pendingLenLen: lenLen,
+ pendingIsASN1: isASN1,
+ }
+
+ f(b.child)
+ b.flushChild()
+ if b.child != nil {
+ panic("cryptobyte: internal error")
+ }
+}
+
+func (b *Builder) flushChild() {
+ if b.child == nil {
+ return
+ }
+ b.child.flushChild()
+ child := b.child
+ b.child = nil
+
+ if child.err != nil {
+ b.err = child.err
+ return
+ }
+
+ length := len(child.result) - child.pendingLenLen - child.offset
+
+ if length < 0 {
+ panic("cryptobyte: internal error") // result unexpectedly shrunk
+ }
+
+ if child.pendingIsASN1 {
+ // For ASN.1, we reserved a single byte for the length. If that turned out
+ // to be incorrect, we have to move the contents along in order to make
+ // space.
+ if child.pendingLenLen != 1 {
+ panic("cryptobyte: internal error")
+ }
+ var lenLen, lenByte uint8
+ if int64(length) > 0xfffffffe {
+ b.err = errors.New("pending ASN.1 child too long")
+ return
+ } else if length > 0xffffff {
+ lenLen = 5
+ lenByte = 0x80 | 4
+ } else if length > 0xffff {
+ lenLen = 4
+ lenByte = 0x80 | 3
+ } else if length > 0xff {
+ lenLen = 3
+ lenByte = 0x80 | 2
+ } else if length > 0x7f {
+ lenLen = 2
+ lenByte = 0x80 | 1
+ } else {
+ lenLen = 1
+ lenByte = uint8(length)
+ length = 0
+ }
+
+ // Insert the initial length byte, make space for successive length bytes,
+ // and adjust the offset.
+ child.result[child.offset] = lenByte
+ extraBytes := int(lenLen - 1)
+ if extraBytes != 0 {
+ child.add(make([]byte, extraBytes)...)
+ childStart := child.offset + child.pendingLenLen
+ copy(child.result[childStart+extraBytes:], child.result[childStart:])
+ }
+ child.offset++
+ child.pendingLenLen = extraBytes
+ }
+
+ l := length
+ for i := child.pendingLenLen - 1; i >= 0; i-- {
+ child.result[child.offset+i] = uint8(l)
+ l >>= 8
+ }
+ if l != 0 {
+ b.err = fmt.Errorf("cryptobyte: pending child length %d exceeds %d-byte length prefix", length, child.pendingLenLen)
+ return
+ }
+
+ if !b.fixedSize {
+ b.result = child.result // In case child reallocated result.
+ }
+}
+
+func (b *Builder) add(bytes ...byte) {
+ if b.err != nil {
+ return
+ }
+ if b.child != nil {
+ panic("attempted write while child is pending")
+ }
+ if len(b.result)+len(bytes) < len(bytes) {
+ b.err = errors.New("cryptobyte: length overflow")
+ }
+ if b.fixedSize && len(b.result)+len(bytes) > cap(b.result) {
+ b.err = errors.New("cryptobyte: Builder is exceeding its fixed-size buffer")
+ return
+ }
+ b.result = append(b.result, bytes...)
+}
+
+// A MarshalingValue marshals itself into a Builder.
+type MarshalingValue interface {
+ // Marshal is called by Builder.AddValue. It receives a pointer to a builder
+ // to marshal itself into. It may return an error that occurred during
+ // marshaling, such as unset or invalid values.
+ Marshal(b *Builder) error
+}
+
+// AddValue calls Marshal on v, passing a pointer to the builder to append to.
+// If Marshal returns an error, it is set on the Builder so that subsequent
+// appends don't have an effect.
+func (b *Builder) AddValue(v MarshalingValue) {
+ err := v.Marshal(b)
+ if err != nil {
+ b.err = err
+ }
+}
diff --git a/vendor/golang.org/x/crypto/cryptobyte/cryptobyte_test.go b/vendor/golang.org/x/crypto/cryptobyte/cryptobyte_test.go
new file mode 100644
index 000000000..49c61dca4
--- /dev/null
+++ b/vendor/golang.org/x/crypto/cryptobyte/cryptobyte_test.go
@@ -0,0 +1,379 @@
+// 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.
+
+package cryptobyte
+
+import (
+ "bytes"
+ "fmt"
+ "testing"
+)
+
+func builderBytesEq(b *Builder, want ...byte) error {
+ got := b.BytesOrPanic()
+ if !bytes.Equal(got, want) {
+ return fmt.Errorf("Bytes() = %v, want %v", got, want)
+ }
+ return nil
+}
+
+func TestBytes(t *testing.T) {
+ var b Builder
+ v := []byte("foobarbaz")
+ b.AddBytes(v[0:3])
+ b.AddBytes(v[3:4])
+ b.AddBytes(v[4:9])
+ if err := builderBytesEq(&b, v...); err != nil {
+ t.Error(err)
+ }
+ s := String(b.BytesOrPanic())
+ for _, w := range []string{"foo", "bar", "baz"} {
+ var got []byte
+ if !s.ReadBytes(&got, 3) {
+ t.Errorf("ReadBytes() = false, want true (w = %v)", w)
+ }
+ want := []byte(w)
+ if !bytes.Equal(got, want) {
+ t.Errorf("ReadBytes(): got = %v, want %v", got, want)
+ }
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+}
+
+func TestUint8(t *testing.T) {
+ var b Builder
+ b.AddUint8(42)
+ if err := builderBytesEq(&b, 42); err != nil {
+ t.Error(err)
+ }
+
+ var s String = b.BytesOrPanic()
+ var v uint8
+ if !s.ReadUint8(&v) {
+ t.Error("ReadUint8() = false, want true")
+ }
+ if v != 42 {
+ t.Errorf("v = %d, want 42", v)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+}
+
+func TestUint16(t *testing.T) {
+ var b Builder
+ b.AddUint16(65534)
+ if err := builderBytesEq(&b, 255, 254); err != nil {
+ t.Error(err)
+ }
+ var s String = b.BytesOrPanic()
+ var v uint16
+ if !s.ReadUint16(&v) {
+ t.Error("ReadUint16() == false, want true")
+ }
+ if v != 65534 {
+ t.Errorf("v = %d, want 65534", v)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+}
+
+func TestUint24(t *testing.T) {
+ var b Builder
+ b.AddUint24(0xfffefd)
+ if err := builderBytesEq(&b, 255, 254, 253); err != nil {
+ t.Error(err)
+ }
+
+ var s String = b.BytesOrPanic()
+ var v uint32
+ if !s.ReadUint24(&v) {
+ t.Error("ReadUint8() = false, want true")
+ }
+ if v != 0xfffefd {
+ t.Errorf("v = %d, want fffefd", v)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+}
+
+func TestUint24Truncation(t *testing.T) {
+ var b Builder
+ b.AddUint24(0x10111213)
+ if err := builderBytesEq(&b, 0x11, 0x12, 0x13); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestUint32(t *testing.T) {
+ var b Builder
+ b.AddUint32(0xfffefdfc)
+ if err := builderBytesEq(&b, 255, 254, 253, 252); err != nil {
+ t.Error(err)
+ }
+
+ var s String = b.BytesOrPanic()
+ var v uint32
+ if !s.ReadUint32(&v) {
+ t.Error("ReadUint8() = false, want true")
+ }
+ if v != 0xfffefdfc {
+ t.Errorf("v = %x, want fffefdfc", v)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+}
+
+func TestUMultiple(t *testing.T) {
+ var b Builder
+ b.AddUint8(23)
+ b.AddUint32(0xfffefdfc)
+ b.AddUint16(42)
+ if err := builderBytesEq(&b, 23, 255, 254, 253, 252, 0, 42); err != nil {
+ t.Error(err)
+ }
+
+ var s String = b.BytesOrPanic()
+ var (
+ x uint8
+ y uint32
+ z uint16
+ )
+ if !s.ReadUint8(&x) || !s.ReadUint32(&y) || !s.ReadUint16(&z) {
+ t.Error("ReadUint8() = false, want true")
+ }
+ if x != 23 || y != 0xfffefdfc || z != 42 {
+ t.Errorf("x, y, z = %d, %d, %d; want 23, 4294901244, 5", x, y, z)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+}
+
+func TestUint8LengthPrefixedSimple(t *testing.T) {
+ var b Builder
+ b.AddUint8LengthPrefixed(func(c *Builder) {
+ c.AddUint8(23)
+ c.AddUint8(42)
+ })
+ if err := builderBytesEq(&b, 2, 23, 42); err != nil {
+ t.Error(err)
+ }
+
+ var base, child String = b.BytesOrPanic(), nil
+ var x, y uint8
+ if !base.ReadUint8LengthPrefixed(&child) || !child.ReadUint8(&x) ||
+ !child.ReadUint8(&y) {
+ t.Error("parsing failed")
+ }
+ if x != 23 || y != 42 {
+ t.Errorf("want x, y == 23, 42; got %d, %d", x, y)
+ }
+ if len(base) != 0 {
+ t.Errorf("len(base) = %d, want 0", len(base))
+ }
+ if len(child) != 0 {
+ t.Errorf("len(child) = %d, want 0", len(child))
+ }
+}
+
+func TestUint8LengthPrefixedMulti(t *testing.T) {
+ var b Builder
+ b.AddUint8LengthPrefixed(func(c *Builder) {
+ c.AddUint8(23)
+ c.AddUint8(42)
+ })
+ b.AddUint8(5)
+ b.AddUint8LengthPrefixed(func(c *Builder) {
+ c.AddUint8(123)
+ c.AddUint8(234)
+ })
+ if err := builderBytesEq(&b, 2, 23, 42, 5, 2, 123, 234); err != nil {
+ t.Error(err)
+ }
+
+ var s, child String = b.BytesOrPanic(), nil
+ var u, v, w, x, y uint8
+ if !s.ReadUint8LengthPrefixed(&child) || !child.ReadUint8(&u) || !child.ReadUint8(&v) ||
+ !s.ReadUint8(&w) || !s.ReadUint8LengthPrefixed(&child) || !child.ReadUint8(&x) || !child.ReadUint8(&y) {
+ t.Error("parsing failed")
+ }
+ if u != 23 || v != 42 || w != 5 || x != 123 || y != 234 {
+ t.Errorf("u, v, w, x, y = %d, %d, %d, %d, %d; want 23, 42, 5, 123, 234",
+ u, v, w, x, y)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+ if len(child) != 0 {
+ t.Errorf("len(child) = %d, want 0", len(child))
+ }
+}
+
+func TestUint8LengthPrefixedNested(t *testing.T) {
+ var b Builder
+ b.AddUint8LengthPrefixed(func(c *Builder) {
+ c.AddUint8(5)
+ c.AddUint8LengthPrefixed(func(d *Builder) {
+ d.AddUint8(23)
+ d.AddUint8(42)
+ })
+ c.AddUint8(123)
+ })
+ if err := builderBytesEq(&b, 5, 5, 2, 23, 42, 123); err != nil {
+ t.Error(err)
+ }
+
+ var base, child1, child2 String = b.BytesOrPanic(), nil, nil
+ var u, v, w, x uint8
+ if !base.ReadUint8LengthPrefixed(&child1) {
+ t.Error("parsing base failed")
+ }
+ if !child1.ReadUint8(&u) || !child1.ReadUint8LengthPrefixed(&child2) || !child1.ReadUint8(&x) {
+ t.Error("parsing child1 failed")
+ }
+ if !child2.ReadUint8(&v) || !child2.ReadUint8(&w) {
+ t.Error("parsing child2 failed")
+ }
+ if u != 5 || v != 23 || w != 42 || x != 123 {
+ t.Errorf("u, v, w, x = %d, %d, %d, %d, want 5, 23, 42, 123",
+ u, v, w, x)
+ }
+ if len(base) != 0 {
+ t.Errorf("len(base) = %d, want 0", len(base))
+ }
+ if len(child1) != 0 {
+ t.Errorf("len(child1) = %d, want 0", len(child1))
+ }
+ if len(base) != 0 {
+ t.Errorf("len(child2) = %d, want 0", len(child2))
+ }
+}
+
+func TestPreallocatedBuffer(t *testing.T) {
+ var buf [5]byte
+ b := NewBuilder(buf[0:0])
+ b.AddUint8(1)
+ b.AddUint8LengthPrefixed(func(c *Builder) {
+ c.AddUint8(3)
+ c.AddUint8(4)
+ })
+ b.AddUint16(1286) // Outgrow buf by one byte.
+ want := []byte{1, 2, 3, 4, 0}
+ if !bytes.Equal(buf[:], want) {
+ t.Errorf("buf = %v want %v", buf, want)
+ }
+ if err := builderBytesEq(b, 1, 2, 3, 4, 5, 6); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestWriteWithPendingChild(t *testing.T) {
+ var b Builder
+ b.AddUint8LengthPrefixed(func(c *Builder) {
+ c.AddUint8LengthPrefixed(func(d *Builder) {
+ defer func() {
+ if recover() == nil {
+ t.Errorf("recover() = nil, want error; c.AddUint8() did not panic")
+ }
+ }()
+ c.AddUint8(2) // panics
+
+ defer func() {
+ if recover() == nil {
+ t.Errorf("recover() = nil, want error; b.AddUint8() did not panic")
+ }
+ }()
+ b.AddUint8(2) // panics
+ })
+
+ defer func() {
+ if recover() == nil {
+ t.Errorf("recover() = nil, want error; b.AddUint8() did not panic")
+ }
+ }()
+ b.AddUint8(2) // panics
+ })
+}
+
+// ASN.1
+
+func TestASN1Int64(t *testing.T) {
+ tests := []struct {
+ in int64
+ want []byte
+ }{
+ {-0x800000, []byte{2, 3, 128, 0, 0}},
+ {-256, []byte{2, 2, 255, 0}},
+ {-129, []byte{2, 2, 255, 127}},
+ {-128, []byte{2, 1, 128}},
+ {-1, []byte{2, 1, 255}},
+ {0, []byte{2, 1, 0}},
+ {1, []byte{2, 1, 1}},
+ {2, []byte{2, 1, 2}},
+ {127, []byte{2, 1, 127}},
+ {128, []byte{2, 2, 0, 128}},
+ {256, []byte{2, 2, 1, 0}},
+ {0x800000, []byte{2, 4, 0, 128, 0, 0}},
+ }
+ for i, tt := range tests {
+ var b Builder
+ b.AddASN1Int64(tt.in)
+ if err := builderBytesEq(&b, tt.want...); err != nil {
+ t.Errorf("%v, (i = %d; in = %v)", err, i, tt.in)
+ }
+
+ var n int64
+ s := String(b.BytesOrPanic())
+ ok := s.ReadASN1Integer(&n)
+ if !ok || n != tt.in {
+ t.Errorf("s.ReadASN1Integer(&n) = %v, n = %d; want true, n = %d (i = %d)",
+ ok, n, tt.in, i)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+ }
+}
+
+func TestASN1Uint64(t *testing.T) {
+ tests := []struct {
+ in uint64
+ want []byte
+ }{
+ {0, []byte{2, 1, 0}},
+ {1, []byte{2, 1, 1}},
+ {2, []byte{2, 1, 2}},
+ {127, []byte{2, 1, 127}},
+ {128, []byte{2, 2, 0, 128}},
+ {256, []byte{2, 2, 1, 0}},
+ {0x800000, []byte{2, 4, 0, 128, 0, 0}},
+ {0x7fffffffffffffff, []byte{2, 8, 127, 255, 255, 255, 255, 255, 255, 255}},
+ {0x8000000000000000, []byte{2, 9, 0, 128, 0, 0, 0, 0, 0, 0, 0}},
+ {0xffffffffffffffff, []byte{2, 9, 0, 255, 255, 255, 255, 255, 255, 255, 255}},
+ }
+ for i, tt := range tests {
+ var b Builder
+ b.AddASN1Uint64(tt.in)
+ if err := builderBytesEq(&b, tt.want...); err != nil {
+ t.Errorf("%v, (i = %d; in = %v)", err, i, tt.in)
+ }
+
+ var n uint64
+ s := String(b.BytesOrPanic())
+ ok := s.ReadASN1Integer(&n)
+ if !ok || n != tt.in {
+ t.Errorf("s.ReadASN1Integer(&n) = %v, n = %d; want true, n = %d (i = %d)",
+ ok, n, tt.in, i)
+ }
+ if len(s) != 0 {
+ t.Errorf("len(s) = %d, want 0", len(s))
+ }
+ }
+}
diff --git a/vendor/golang.org/x/crypto/cryptobyte/example_test.go b/vendor/golang.org/x/crypto/cryptobyte/example_test.go
new file mode 100644
index 000000000..7d3c06e12
--- /dev/null
+++ b/vendor/golang.org/x/crypto/cryptobyte/example_test.go
@@ -0,0 +1,120 @@
+// 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.
+
+package cryptobyte_test
+
+import (
+ "encoding/asn1"
+ "fmt"
+ "golang.org/x/crypto/cryptobyte"
+)
+
+func ExampleString_lengthPrefixed() {
+ // This is an example of parsing length-prefixed data (as found in, for
+ // example, TLS). Imagine a 16-bit prefixed series of 8-bit prefixed
+ // strings.
+
+ input := cryptobyte.String([]byte{0, 12, 5, 'h', 'e', 'l', 'l', 'o', 5, 'w', 'o', 'r', 'l', 'd'})
+ var result []string
+
+ var values cryptobyte.String
+ if !input.ReadUint16LengthPrefixed(&values) ||
+ !input.Empty() {
+ panic("bad format")
+ }
+
+ for !values.Empty() {
+ var value cryptobyte.String
+ if !values.ReadUint8LengthPrefixed(&value) {
+ panic("bad format")
+ }
+
+ result = append(result, string(value))
+ }
+
+ // Output: []string{"hello", "world"}
+ fmt.Printf("%#v\n", result)
+}
+
+func ExampleString_asn1() {
+ // This is an example of parsing ASN.1 data that looks like:
+ // Foo ::= SEQUENCE {
+ // version [6] INTEGER DEFAULT 0
+ // data OCTET STRING
+ // }
+
+ input := cryptobyte.String([]byte{0x30, 12, 0xa6, 3, 2, 1, 2, 4, 5, 'h', 'e', 'l', 'l', 'o'})
+
+ var (
+ version int64
+ data, inner, versionBytes cryptobyte.String
+ haveVersion bool
+ )
+ if !input.ReadASN1(&inner, cryptobyte.Tag(asn1.TagSequence).Constructed()) ||
+ !input.Empty() ||
+ !inner.ReadOptionalASN1(&versionBytes, &haveVersion, cryptobyte.Tag(6).Constructed().ContextSpecific()) ||
+ (haveVersion && !versionBytes.ReadASN1Integer(&version)) ||
+ (haveVersion && !versionBytes.Empty()) ||
+ !inner.ReadASN1(&data, asn1.TagOctetString) ||
+ !inner.Empty() {
+ panic("bad format")
+ }
+
+ // Output: haveVersion: true, version: 2, data: hello
+ fmt.Printf("haveVersion: %t, version: %d, data: %s\n", haveVersion, version, string(data))
+}
+
+func ExampleBuilder_asn1() {
+ // This is an example of building ASN.1 data that looks like:
+ // Foo ::= SEQUENCE {
+ // version [6] INTEGER DEFAULT 0
+ // data OCTET STRING
+ // }
+
+ version := int64(2)
+ data := []byte("hello")
+ const defaultVersion = 0
+
+ var b cryptobyte.Builder
+ b.AddASN1(cryptobyte.Tag(asn1.TagSequence).Constructed(), func(b *cryptobyte.Builder) {
+ if version != defaultVersion {
+ b.AddASN1(cryptobyte.Tag(6).Constructed().ContextSpecific(), func(b *cryptobyte.Builder) {
+ b.AddASN1Int64(version)
+ })
+ }
+ b.AddASN1OctetString(data)
+ })
+
+ result, err := b.Bytes()
+ if err != nil {
+ panic(err)
+ }
+
+ // Output: 300ca603020102040568656c6c6f
+ fmt.Printf("%x\n", result)
+}
+
+func ExampleBuilder_lengthPrefixed() {
+ // This is an example of building length-prefixed data (as found in,
+ // for example, TLS). Imagine a 16-bit prefixed series of 8-bit
+ // prefixed strings.
+ input := []string{"hello", "world"}
+
+ var b cryptobyte.Builder
+ b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) {
+ for _, value := range input {
+ b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) {
+ b.AddBytes([]byte(value))
+ })
+ }
+ })
+
+ result, err := b.Bytes()
+ if err != nil {
+ panic(err)
+ }
+
+ // Output: 000c0568656c6c6f05776f726c64
+ fmt.Printf("%x\n", result)
+}
diff --git a/vendor/golang.org/x/crypto/cryptobyte/string.go b/vendor/golang.org/x/crypto/cryptobyte/string.go
new file mode 100644
index 000000000..b1215b3bf
--- /dev/null
+++ b/vendor/golang.org/x/crypto/cryptobyte/string.go
@@ -0,0 +1,157 @@
+// 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.
+
+// Package cryptobyte implements building and parsing of byte strings for
+// DER-encoded ASN.1 and TLS messages. See the examples for the Builder and
+// String types to get started.
+package cryptobyte
+
+// String represents a string of bytes. It provides methods for parsing
+// fixed-length and length-prefixed values from it.
+type String []byte
+
+// read advances a String by n bytes and returns them. If less than n bytes
+// remain, it returns nil.
+func (s *String) read(n int) []byte {
+ if len(*s) < n {
+ return nil
+ }
+ v := (*s)[:n]
+ *s = (*s)[n:]
+ return v
+}
+
+// Skip advances the String by n byte and reports whether it was successful.
+func (s *String) Skip(n int) bool {
+ return s.read(n) != nil
+}
+
+// ReadUint8 decodes an 8-bit value into out and advances over it. It
+// returns true on success and false on error.
+func (s *String) ReadUint8(out *uint8) bool {
+ v := s.read(1)
+ if v == nil {
+ return false
+ }
+ *out = uint8(v[0])
+ return true
+}
+
+// ReadUint16 decodes a big-endian, 16-bit value into out and advances over it.
+// It returns true on success and false on error.
+func (s *String) ReadUint16(out *uint16) bool {
+ v := s.read(2)
+ if v == nil {
+ return false
+ }
+ *out = uint16(v[0])<<8 | uint16(v[1])
+ return true
+}
+
+// ReadUint24 decodes a big-endian, 24-bit value into out and advances over it.
+// It returns true on success and false on error.
+func (s *String) ReadUint24(out *uint32) bool {
+ v := s.read(3)
+ if v == nil {
+ return false
+ }
+ *out = uint32(v[0])<<16 | uint32(v[1])<<8 | uint32(v[2])
+ return true
+}
+
+// ReadUint32 decodes a big-endian, 32-bit value into out and advances over it.
+// It returns true on success and false on error.
+func (s *String) ReadUint32(out *uint32) bool {
+ v := s.read(4)
+ if v == nil {
+ return false
+ }
+ *out = uint32(v[0])<<24 | uint32(v[1])<<16 | uint32(v[2])<<8 | uint32(v[3])
+ return true
+}
+
+func (s *String) readUnsigned(out *uint32, length int) bool {
+ v := s.read(length)
+ if v == nil {
+ return false
+ }
+ var result uint32
+ for i := 0; i < length; i++ {
+ result <<= 8
+ result |= uint32(v[i])
+ }
+ *out = result
+ return true
+}
+
+func (s *String) readLengthPrefixed(lenLen int, outChild *String) bool {
+ lenBytes := s.read(lenLen)
+ if lenBytes == nil {
+ return false
+ }
+ var length uint32
+ for _, b := range lenBytes {
+ length = length << 8
+ length = length | uint32(b)
+ }
+ if int(length) < 0 {
+ // This currently cannot overflow because we read uint24 at most, but check
+ // anyway in case that changes in the future.
+ return false
+ }
+ v := s.read(int(length))
+ if v == nil {
+ return false
+ }
+ *outChild = v
+ return true
+}
+
+// ReadUint8LengthPrefixed reads the content of an 8-bit length-prefixed value
+// into out and advances over it. It returns true on success and false on
+// error.
+func (s *String) ReadUint8LengthPrefixed(out *String) bool {
+ return s.readLengthPrefixed(1, out)
+}
+
+// ReadUint16LengthPrefixed reads the content of a big-endian, 16-bit
+// length-prefixed value into out and advances over it. It returns true on
+// success and false on error.
+func (s *String) ReadUint16LengthPrefixed(out *String) bool {
+ return s.readLengthPrefixed(2, out)
+}
+
+// ReadUint24LengthPrefixed reads the content of a big-endian, 24-bit
+// length-prefixed value into out and advances over it. It returns true on
+// success and false on error.
+func (s *String) ReadUint24LengthPrefixed(out *String) bool {
+ return s.readLengthPrefixed(3, out)
+}
+
+// ReadBytes reads n bytes into out and advances over them. It returns true on
+// success and false and error.
+func (s *String) ReadBytes(out *[]byte, n int) bool {
+ v := s.read(n)
+ if v == nil {
+ return false
+ }
+ *out = v
+ return true
+}
+
+// CopyBytes copies len(out) bytes into out and advances over them. It returns
+// true on success and false on error.
+func (s *String) CopyBytes(out []byte) bool {
+ n := len(out)
+ v := s.read(n)
+ if v == nil {
+ return false
+ }
+ return copy(out, v) == n
+}
+
+// Empty reports whether the string does not contain any bytes.
+func (s String) Empty() bool {
+ return len(s) == 0
+}
diff --git a/vendor/golang.org/x/crypto/curve25519/const_amd64.h b/vendor/golang.org/x/crypto/curve25519/const_amd64.h
new file mode 100644
index 000000000..80ad2220f
--- /dev/null
+++ b/vendor/golang.org/x/crypto/curve25519/const_amd64.h
@@ -0,0 +1,8 @@
+// Copyright 2012 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 code was translated into a form compatible with 6a from the public
+// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html
+
+#define REDMASK51 0x0007FFFFFFFFFFFF
diff --git a/vendor/golang.org/x/crypto/curve25519/const_amd64.s b/vendor/golang.org/x/crypto/curve25519/const_amd64.s
index 797f9b051..0ad539885 100644
--- a/vendor/golang.org/x/crypto/curve25519/const_amd64.s
+++ b/vendor/golang.org/x/crypto/curve25519/const_amd64.s
@@ -7,8 +7,8 @@
// +build amd64,!gccgo,!appengine
-DATA ·REDMASK51(SB)/8, $0x0007FFFFFFFFFFFF
-GLOBL ·REDMASK51(SB), 8, $8
+// These constants cannot be encoded in non-MOVQ immediates.
+// We access them directly from memory instead.
DATA ·_121666_213(SB)/8, $996687872
GLOBL ·_121666_213(SB), 8, $8
diff --git a/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s b/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s
index 932800b8d..536479bf6 100644
--- a/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s
+++ b/vendor/golang.org/x/crypto/curve25519/freeze_amd64.s
@@ -7,6 +7,8 @@
// +build amd64,!gccgo,!appengine
+#include "const_amd64.h"
+
// func freeze(inout *[5]uint64)
TEXT ·freeze(SB),7,$0-8
MOVQ inout+0(FP), DI
@@ -16,7 +18,7 @@ TEXT ·freeze(SB),7,$0-8
MOVQ 16(DI),CX
MOVQ 24(DI),R8
MOVQ 32(DI),R9
- MOVQ ·REDMASK51(SB),AX
+ MOVQ $REDMASK51,AX
MOVQ AX,R10
SUBQ $18,R10
MOVQ $3,R11
diff --git a/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s
index ee7b36c36..7074e5cd9 100644
--- a/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s
+++ b/vendor/golang.org/x/crypto/curve25519/ladderstep_amd64.s
@@ -7,6 +7,8 @@
// +build amd64,!gccgo,!appengine
+#include "const_amd64.h"
+
// func ladderstep(inout *[5][5]uint64)
TEXT ·ladderstep(SB),0,$296-8
MOVQ inout+0(FP),DI
@@ -118,7 +120,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 72(SP)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
@@ -233,7 +235,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 32(SP)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
@@ -438,7 +440,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 72(SP)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
@@ -588,7 +590,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 32(SP)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
@@ -728,7 +730,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 152(DI)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
@@ -843,7 +845,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 192(DI)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
@@ -993,7 +995,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 32(DI)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
@@ -1143,7 +1145,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 112(SP)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
@@ -1329,7 +1331,7 @@ TEXT ·ladderstep(SB),0,$296-8
MULQ 192(SP)
ADDQ AX,R12
ADCQ DX,R13
- MOVQ ·REDMASK51(SB),DX
+ MOVQ $REDMASK51,DX
SHLQ $13,CX:SI
ANDQ DX,SI
SHLQ $13,R9:R8
diff --git a/vendor/golang.org/x/crypto/curve25519/mul_amd64.s b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s
index 33ce57dcd..b162e6515 100644
--- a/vendor/golang.org/x/crypto/curve25519/mul_amd64.s
+++ b/vendor/golang.org/x/crypto/curve25519/mul_amd64.s
@@ -7,6 +7,8 @@
// +build amd64,!gccgo,!appengine
+#include "const_amd64.h"
+
// func mul(dest, a, b *[5]uint64)
TEXT ·mul(SB),0,$16-24
MOVQ dest+0(FP), DI
@@ -121,7 +123,7 @@ TEXT ·mul(SB),0,$16-24
MULQ 32(CX)
ADDQ AX,R14
ADCQ DX,R15
- MOVQ ·REDMASK51(SB),SI
+ MOVQ $REDMASK51,SI
SHLQ $13,R9:R8
ANDQ SI,R8
SHLQ $13,R11:R10
diff --git a/vendor/golang.org/x/crypto/curve25519/square_amd64.s b/vendor/golang.org/x/crypto/curve25519/square_amd64.s
index 3a92804dd..4e864a83e 100644
--- a/vendor/golang.org/x/crypto/curve25519/square_amd64.s
+++ b/vendor/golang.org/x/crypto/curve25519/square_amd64.s
@@ -7,6 +7,8 @@
// +build amd64,!gccgo,!appengine
+#include "const_amd64.h"
+
// func square(out, in *[5]uint64)
TEXT ·square(SB),7,$0-16
MOVQ out+0(FP), DI
@@ -84,7 +86,7 @@ TEXT ·square(SB),7,$0-16
MULQ 32(SI)
ADDQ AX,R13
ADCQ DX,R14
- MOVQ ·REDMASK51(SB),SI
+ MOVQ $REDMASK51,SI
SHLQ $13,R8:CX
ANDQ SI,CX
SHLQ $13,R10:R9
diff --git a/vendor/golang.org/x/crypto/ocsp/ocsp_test.go b/vendor/golang.org/x/crypto/ocsp/ocsp_test.go
index a3c898619..d325d851e 100644
--- a/vendor/golang.org/x/crypto/ocsp/ocsp_test.go
+++ b/vendor/golang.org/x/crypto/ocsp/ocsp_test.go
@@ -225,7 +225,6 @@ func TestOCSPResponse(t *testing.T) {
},
}
- producedAt := time.Now().Truncate(time.Minute)
thisUpdate := time.Date(2010, 7, 7, 15, 1, 5, 0, time.UTC)
nextUpdate := time.Date(2010, 7, 7, 18, 35, 17, 0, time.UTC)
template := Response{
@@ -284,8 +283,9 @@ func TestOCSPResponse(t *testing.T) {
t.Errorf("resp.Extensions: got %v, want %v", resp.Extensions, template.ExtraExtensions)
}
- if !resp.ProducedAt.Equal(producedAt) {
- t.Errorf("resp.ProducedAt: got %d, want %d", resp.ProducedAt, producedAt)
+ delay := time.Since(resp.ProducedAt)
+ if delay < -time.Hour || delay > time.Hour {
+ t.Errorf("resp.ProducedAt: got %s, want close to current time (%s)", resp.ProducedAt, time.Now())
}
if resp.Status != template.Status {
diff --git a/vendor/golang.org/x/crypto/poly1305/poly1305_test.go b/vendor/golang.org/x/crypto/poly1305/poly1305_test.go
index 7b8ab2fe1..017027fe6 100644
--- a/vendor/golang.org/x/crypto/poly1305/poly1305_test.go
+++ b/vendor/golang.org/x/crypto/poly1305/poly1305_test.go
@@ -6,10 +6,14 @@ package poly1305
import (
"bytes"
+ "encoding/hex"
+ "flag"
"testing"
"unsafe"
)
+var stressFlag = flag.Bool("stress", false, "run slow stress tests")
+
var testData = []struct {
in, k, correct []byte
}{
@@ -88,6 +92,39 @@ func testSum(t *testing.T, unaligned bool) {
}
}
+func TestBurnin(t *testing.T) {
+ // This test can be used to sanity-check significant changes. It can
+ // take about many minutes to run, even on fast machines. It's disabled
+ // by default.
+ if !*stressFlag {
+ t.Skip("skipping without -stress")
+ }
+
+ var key [32]byte
+ var input [25]byte
+ var output [16]byte
+
+ for i := range key {
+ key[i] = 1
+ }
+ for i := range input {
+ input[i] = 2
+ }
+
+ for i := uint64(0); i < 1e10; i++ {
+ Sum(&output, input[:], &key)
+ copy(key[0:], output[:])
+ copy(key[16:], output[:])
+ copy(input[:], output[:])
+ copy(input[16:], output[:])
+ }
+
+ const expected = "5e3b866aea0b636d240c83c428f84bfa"
+ if got := hex.EncodeToString(output[:]); got != expected {
+ t.Errorf("expected %s, got %s", expected, got)
+ }
+}
+
func TestSum(t *testing.T) { testSum(t, false) }
func TestSumUnaligned(t *testing.T) { testSum(t, true) }
diff --git a/vendor/golang.org/x/crypto/poly1305/sum_ref.go b/vendor/golang.org/x/crypto/poly1305/sum_ref.go
index dbe50e78a..b2805a5ca 100644
--- a/vendor/golang.org/x/crypto/poly1305/sum_ref.go
+++ b/vendor/golang.org/x/crypto/poly1305/sum_ref.go
@@ -6,1526 +6,136 @@
package poly1305
-// Based on original, public domain implementation from NaCl by D. J.
-// Bernstein.
+import "encoding/binary"
-import "math"
-
-const (
- alpham80 = 0.00000000558793544769287109375
- alpham48 = 24.0
- alpham16 = 103079215104.0
- alpha0 = 6755399441055744.0
- alpha18 = 1770887431076116955136.0
- alpha32 = 29014219670751100192948224.0
- alpha50 = 7605903601369376408980219232256.0
- alpha64 = 124615124604835863084731911901282304.0
- alpha82 = 32667107224410092492483962313449748299776.0
- alpha96 = 535217884764734955396857238543560676143529984.0
- alpha112 = 35076039295941670036888435985190792471742381031424.0
- alpha130 = 9194973245195333150150082162901855101712434733101613056.0
- scale = 0.0000000000000000000000000000000000000036734198463196484624023016788195177431833298649127735047148490821200539357960224151611328125
- offset0 = 6755408030990331.0
- offset1 = 29014256564239239022116864.0
- offset2 = 124615283061160854719918951570079744.0
- offset3 = 535219245894202480694386063513315216128475136.0
-)
-
-// Sum generates an authenticator for m using a one-time key and puts the
+// Sum generates an authenticator for msg using a one-time key and puts the
// 16-byte result into out. Authenticating two different messages with the same
// key allows an attacker to forge messages at will.
-func Sum(out *[16]byte, m []byte, key *[32]byte) {
- r := key
- s := key[16:]
+func Sum(out *[TagSize]byte, msg []byte, key *[32]byte) {
var (
- y7 float64
- y6 float64
- y1 float64
- y0 float64
- y5 float64
- y4 float64
- x7 float64
- x6 float64
- x1 float64
- x0 float64
- y3 float64
- y2 float64
- x5 float64
- r3lowx0 float64
- x4 float64
- r0lowx6 float64
- x3 float64
- r3highx0 float64
- x2 float64
- r0highx6 float64
- r0lowx0 float64
- sr1lowx6 float64
- r0highx0 float64
- sr1highx6 float64
- sr3low float64
- r1lowx0 float64
- sr2lowx6 float64
- r1highx0 float64
- sr2highx6 float64
- r2lowx0 float64
- sr3lowx6 float64
- r2highx0 float64
- sr3highx6 float64
- r1highx4 float64
- r1lowx4 float64
- r0highx4 float64
- r0lowx4 float64
- sr3highx4 float64
- sr3lowx4 float64
- sr2highx4 float64
- sr2lowx4 float64
- r0lowx2 float64
- r0highx2 float64
- r1lowx2 float64
- r1highx2 float64
- r2lowx2 float64
- r2highx2 float64
- sr3lowx2 float64
- sr3highx2 float64
- z0 float64
- z1 float64
- z2 float64
- z3 float64
- m0 int64
- m1 int64
- m2 int64
- m3 int64
- m00 uint32
- m01 uint32
- m02 uint32
- m03 uint32
- m10 uint32
- m11 uint32
- m12 uint32
- m13 uint32
- m20 uint32
- m21 uint32
- m22 uint32
- m23 uint32
- m30 uint32
- m31 uint32
- m32 uint32
- m33 uint64
- lbelow2 int32
- lbelow3 int32
- lbelow4 int32
- lbelow5 int32
- lbelow6 int32
- lbelow7 int32
- lbelow8 int32
- lbelow9 int32
- lbelow10 int32
- lbelow11 int32
- lbelow12 int32
- lbelow13 int32
- lbelow14 int32
- lbelow15 int32
- s00 uint32
- s01 uint32
- s02 uint32
- s03 uint32
- s10 uint32
- s11 uint32
- s12 uint32
- s13 uint32
- s20 uint32
- s21 uint32
- s22 uint32
- s23 uint32
- s30 uint32
- s31 uint32
- s32 uint32
- s33 uint32
- bits32 uint64
- f uint64
- f0 uint64
- f1 uint64
- f2 uint64
- f3 uint64
- f4 uint64
- g uint64
- g0 uint64
- g1 uint64
- g2 uint64
- g3 uint64
- g4 uint64
+ h0, h1, h2, h3, h4 uint32 // the hash accumulators
+ r0, r1, r2, r3, r4 uint64 // the r part of the key
)
- var p int32
-
- l := int32(len(m))
-
- r00 := uint32(r[0])
-
- r01 := uint32(r[1])
-
- r02 := uint32(r[2])
- r0 := int64(2151)
-
- r03 := uint32(r[3])
- r03 &= 15
- r0 <<= 51
-
- r10 := uint32(r[4])
- r10 &= 252
- r01 <<= 8
- r0 += int64(r00)
-
- r11 := uint32(r[5])
- r02 <<= 16
- r0 += int64(r01)
-
- r12 := uint32(r[6])
- r03 <<= 24
- r0 += int64(r02)
-
- r13 := uint32(r[7])
- r13 &= 15
- r1 := int64(2215)
- r0 += int64(r03)
-
- d0 := r0
- r1 <<= 51
- r2 := int64(2279)
-
- r20 := uint32(r[8])
- r20 &= 252
- r11 <<= 8
- r1 += int64(r10)
-
- r21 := uint32(r[9])
- r12 <<= 16
- r1 += int64(r11)
-
- r22 := uint32(r[10])
- r13 <<= 24
- r1 += int64(r12)
-
- r23 := uint32(r[11])
- r23 &= 15
- r2 <<= 51
- r1 += int64(r13)
-
- d1 := r1
- r21 <<= 8
- r2 += int64(r20)
-
- r30 := uint32(r[12])
- r30 &= 252
- r22 <<= 16
- r2 += int64(r21)
-
- r31 := uint32(r[13])
- r23 <<= 24
- r2 += int64(r22)
-
- r32 := uint32(r[14])
- r2 += int64(r23)
- r3 := int64(2343)
-
- d2 := r2
- r3 <<= 51
-
- r33 := uint32(r[15])
- r33 &= 15
- r31 <<= 8
- r3 += int64(r30)
-
- r32 <<= 16
- r3 += int64(r31)
-
- r33 <<= 24
- r3 += int64(r32)
-
- r3 += int64(r33)
- h0 := alpha32 - alpha32
-
- d3 := r3
- h1 := alpha32 - alpha32
-
- h2 := alpha32 - alpha32
-
- h3 := alpha32 - alpha32
-
- h4 := alpha32 - alpha32
-
- r0low := math.Float64frombits(uint64(d0))
- h5 := alpha32 - alpha32
-
- r1low := math.Float64frombits(uint64(d1))
- h6 := alpha32 - alpha32
-
- r2low := math.Float64frombits(uint64(d2))
- h7 := alpha32 - alpha32
-
- r0low -= alpha0
-
- r1low -= alpha32
-
- r2low -= alpha64
-
- r0high := r0low + alpha18
-
- r3low := math.Float64frombits(uint64(d3))
-
- r1high := r1low + alpha50
- sr1low := scale * r1low
-
- r2high := r2low + alpha82
- sr2low := scale * r2low
-
- r0high -= alpha18
- r0high_stack := r0high
-
- r3low -= alpha96
-
- r1high -= alpha50
- r1high_stack := r1high
-
- sr1high := sr1low + alpham80
-
- r0low -= r0high
-
- r2high -= alpha82
- sr3low = scale * r3low
-
- sr2high := sr2low + alpham48
-
- r1low -= r1high
- r1low_stack := r1low
-
- sr1high -= alpham80
- sr1high_stack := sr1high
-
- r2low -= r2high
- r2low_stack := r2low
-
- sr2high -= alpham48
- sr2high_stack := sr2high
-
- r3high := r3low + alpha112
- r0low_stack := r0low
-
- sr1low -= sr1high
- sr1low_stack := sr1low
-
- sr3high := sr3low + alpham16
- r2high_stack := r2high
-
- sr2low -= sr2high
- sr2low_stack := sr2low
-
- r3high -= alpha112
- r3high_stack := r3high
-
- sr3high -= alpham16
- sr3high_stack := sr3high
-
- r3low -= r3high
- r3low_stack := r3low
-
- sr3low -= sr3high
- sr3low_stack := sr3low
-
- if l < 16 {
- goto addatmost15bytes
- }
-
- m00 = uint32(m[p+0])
- m0 = 2151
-
- m0 <<= 51
- m1 = 2215
- m01 = uint32(m[p+1])
-
- m1 <<= 51
- m2 = 2279
- m02 = uint32(m[p+2])
-
- m2 <<= 51
- m3 = 2343
- m03 = uint32(m[p+3])
-
- m10 = uint32(m[p+4])
- m01 <<= 8
- m0 += int64(m00)
-
- m11 = uint32(m[p+5])
- m02 <<= 16
- m0 += int64(m01)
-
- m12 = uint32(m[p+6])
- m03 <<= 24
- m0 += int64(m02)
-
- m13 = uint32(m[p+7])
- m3 <<= 51
- m0 += int64(m03)
-
- m20 = uint32(m[p+8])
- m11 <<= 8
- m1 += int64(m10)
-
- m21 = uint32(m[p+9])
- m12 <<= 16
- m1 += int64(m11)
-
- m22 = uint32(m[p+10])
- m13 <<= 24
- m1 += int64(m12)
-
- m23 = uint32(m[p+11])
- m1 += int64(m13)
-
- m30 = uint32(m[p+12])
- m21 <<= 8
- m2 += int64(m20)
-
- m31 = uint32(m[p+13])
- m22 <<= 16
- m2 += int64(m21)
-
- m32 = uint32(m[p+14])
- m23 <<= 24
- m2 += int64(m22)
-
- m33 = uint64(m[p+15])
- m2 += int64(m23)
-
- d0 = m0
- m31 <<= 8
- m3 += int64(m30)
-
- d1 = m1
- m32 <<= 16
- m3 += int64(m31)
-
- d2 = m2
- m33 += 256
-
- m33 <<= 24
- m3 += int64(m32)
-
- m3 += int64(m33)
- d3 = m3
-
- p += 16
- l -= 16
-
- z0 = math.Float64frombits(uint64(d0))
-
- z1 = math.Float64frombits(uint64(d1))
-
- z2 = math.Float64frombits(uint64(d2))
-
- z3 = math.Float64frombits(uint64(d3))
-
- z0 -= alpha0
-
- z1 -= alpha32
-
- z2 -= alpha64
-
- z3 -= alpha96
-
- h0 += z0
-
- h1 += z1
-
- h3 += z2
-
- h5 += z3
-
- if l < 16 {
- goto multiplyaddatmost15bytes
+ r0 = uint64(binary.LittleEndian.Uint32(key[0:]) & 0x3ffffff)
+ r1 = uint64((binary.LittleEndian.Uint32(key[3:]) >> 2) & 0x3ffff03)
+ r2 = uint64((binary.LittleEndian.Uint32(key[6:]) >> 4) & 0x3ffc0ff)
+ r3 = uint64((binary.LittleEndian.Uint32(key[9:]) >> 6) & 0x3f03fff)
+ r4 = uint64((binary.LittleEndian.Uint32(key[12:]) >> 8) & 0x00fffff)
+
+ R1, R2, R3, R4 := r1*5, r2*5, r3*5, r4*5
+
+ for len(msg) >= TagSize {
+ // h += msg
+ h0 += binary.LittleEndian.Uint32(msg[0:]) & 0x3ffffff
+ h1 += (binary.LittleEndian.Uint32(msg[3:]) >> 2) & 0x3ffffff
+ h2 += (binary.LittleEndian.Uint32(msg[6:]) >> 4) & 0x3ffffff
+ h3 += (binary.LittleEndian.Uint32(msg[9:]) >> 6) & 0x3ffffff
+ h4 += (binary.LittleEndian.Uint32(msg[12:]) >> 8) | (1 << 24)
+
+ // h *= r
+ d0 := (uint64(h0) * r0) + (uint64(h1) * R4) + (uint64(h2) * R3) + (uint64(h3) * R2) + (uint64(h4) * R1)
+ d1 := (d0 >> 26) + (uint64(h0) * r1) + (uint64(h1) * r0) + (uint64(h2) * R4) + (uint64(h3) * R3) + (uint64(h4) * R2)
+ d2 := (d1 >> 26) + (uint64(h0) * r2) + (uint64(h1) * r1) + (uint64(h2) * r0) + (uint64(h3) * R4) + (uint64(h4) * R3)
+ d3 := (d2 >> 26) + (uint64(h0) * r3) + (uint64(h1) * r2) + (uint64(h2) * r1) + (uint64(h3) * r0) + (uint64(h4) * R4)
+ d4 := (d3 >> 26) + (uint64(h0) * r4) + (uint64(h1) * r3) + (uint64(h2) * r2) + (uint64(h3) * r1) + (uint64(h4) * r0)
+
+ // h %= p
+ h0 = uint32(d0) & 0x3ffffff
+ h1 = uint32(d1) & 0x3ffffff
+ h2 = uint32(d2) & 0x3ffffff
+ h3 = uint32(d3) & 0x3ffffff
+ h4 = uint32(d4) & 0x3ffffff
+
+ h0 += uint32(d4>>26) * 5
+ h1 += h0 >> 26
+ h0 = h0 & 0x3ffffff
+
+ msg = msg[TagSize:]
}
-multiplyaddatleast16bytes:
-
- m2 = 2279
- m20 = uint32(m[p+8])
- y7 = h7 + alpha130
-
- m2 <<= 51
- m3 = 2343
- m21 = uint32(m[p+9])
- y6 = h6 + alpha130
-
- m3 <<= 51
- m0 = 2151
- m22 = uint32(m[p+10])
- y1 = h1 + alpha32
-
- m0 <<= 51
- m1 = 2215
- m23 = uint32(m[p+11])
- y0 = h0 + alpha32
-
- m1 <<= 51
- m30 = uint32(m[p+12])
- y7 -= alpha130
-
- m21 <<= 8
- m2 += int64(m20)
- m31 = uint32(m[p+13])
- y6 -= alpha130
-
- m22 <<= 16
- m2 += int64(m21)
- m32 = uint32(m[p+14])
- y1 -= alpha32
-
- m23 <<= 24
- m2 += int64(m22)
- m33 = uint64(m[p+15])
- y0 -= alpha32
-
- m2 += int64(m23)
- m00 = uint32(m[p+0])
- y5 = h5 + alpha96
-
- m31 <<= 8
- m3 += int64(m30)
- m01 = uint32(m[p+1])
- y4 = h4 + alpha96
-
- m32 <<= 16
- m02 = uint32(m[p+2])
- x7 = h7 - y7
- y7 *= scale
-
- m33 += 256
- m03 = uint32(m[p+3])
- x6 = h6 - y6
- y6 *= scale
-
- m33 <<= 24
- m3 += int64(m31)
- m10 = uint32(m[p+4])
- x1 = h1 - y1
-
- m01 <<= 8
- m3 += int64(m32)
- m11 = uint32(m[p+5])
- x0 = h0 - y0
-
- m3 += int64(m33)
- m0 += int64(m00)
- m12 = uint32(m[p+6])
- y5 -= alpha96
-
- m02 <<= 16
- m0 += int64(m01)
- m13 = uint32(m[p+7])
- y4 -= alpha96
-
- m03 <<= 24
- m0 += int64(m02)
- d2 = m2
- x1 += y7
-
- m0 += int64(m03)
- d3 = m3
- x0 += y6
-
- m11 <<= 8
- m1 += int64(m10)
- d0 = m0
- x7 += y5
-
- m12 <<= 16
- m1 += int64(m11)
- x6 += y4
-
- m13 <<= 24
- m1 += int64(m12)
- y3 = h3 + alpha64
-
- m1 += int64(m13)
- d1 = m1
- y2 = h2 + alpha64
-
- x0 += x1
-
- x6 += x7
-
- y3 -= alpha64
- r3low = r3low_stack
-
- y2 -= alpha64
- r0low = r0low_stack
-
- x5 = h5 - y5
- r3lowx0 = r3low * x0
- r3high = r3high_stack
-
- x4 = h4 - y4
- r0lowx6 = r0low * x6
- r0high = r0high_stack
-
- x3 = h3 - y3
- r3highx0 = r3high * x0
- sr1low = sr1low_stack
-
- x2 = h2 - y2
- r0highx6 = r0high * x6
- sr1high = sr1high_stack
-
- x5 += y3
- r0lowx0 = r0low * x0
- r1low = r1low_stack
-
- h6 = r3lowx0 + r0lowx6
- sr1lowx6 = sr1low * x6
- r1high = r1high_stack
-
- x4 += y2
- r0highx0 = r0high * x0
- sr2low = sr2low_stack
-
- h7 = r3highx0 + r0highx6
- sr1highx6 = sr1high * x6
- sr2high = sr2high_stack
-
- x3 += y1
- r1lowx0 = r1low * x0
- r2low = r2low_stack
-
- h0 = r0lowx0 + sr1lowx6
- sr2lowx6 = sr2low * x6
- r2high = r2high_stack
-
- x2 += y0
- r1highx0 = r1high * x0
- sr3low = sr3low_stack
-
- h1 = r0highx0 + sr1highx6
- sr2highx6 = sr2high * x6
- sr3high = sr3high_stack
-
- x4 += x5
- r2lowx0 = r2low * x0
- z2 = math.Float64frombits(uint64(d2))
-
- h2 = r1lowx0 + sr2lowx6
- sr3lowx6 = sr3low * x6
-
- x2 += x3
- r2highx0 = r2high * x0
- z3 = math.Float64frombits(uint64(d3))
-
- h3 = r1highx0 + sr2highx6
- sr3highx6 = sr3high * x6
-
- r1highx4 = r1high * x4
- z2 -= alpha64
-
- h4 = r2lowx0 + sr3lowx6
- r1lowx4 = r1low * x4
-
- r0highx4 = r0high * x4
- z3 -= alpha96
-
- h5 = r2highx0 + sr3highx6
- r0lowx4 = r0low * x4
-
- h7 += r1highx4
- sr3highx4 = sr3high * x4
-
- h6 += r1lowx4
- sr3lowx4 = sr3low * x4
-
- h5 += r0highx4
- sr2highx4 = sr2high * x4
-
- h4 += r0lowx4
- sr2lowx4 = sr2low * x4
-
- h3 += sr3highx4
- r0lowx2 = r0low * x2
-
- h2 += sr3lowx4
- r0highx2 = r0high * x2
-
- h1 += sr2highx4
- r1lowx2 = r1low * x2
-
- h0 += sr2lowx4
- r1highx2 = r1high * x2
-
- h2 += r0lowx2
- r2lowx2 = r2low * x2
-
- h3 += r0highx2
- r2highx2 = r2high * x2
-
- h4 += r1lowx2
- sr3lowx2 = sr3low * x2
-
- h5 += r1highx2
- sr3highx2 = sr3high * x2
-
- p += 16
- l -= 16
- h6 += r2lowx2
-
- h7 += r2highx2
-
- z1 = math.Float64frombits(uint64(d1))
- h0 += sr3lowx2
-
- z0 = math.Float64frombits(uint64(d0))
- h1 += sr3highx2
-
- z1 -= alpha32
-
- z0 -= alpha0
-
- h5 += z3
-
- h3 += z2
-
- h1 += z1
-
- h0 += z0
-
- if l >= 16 {
- goto multiplyaddatleast16bytes
- }
-
-multiplyaddatmost15bytes:
-
- y7 = h7 + alpha130
-
- y6 = h6 + alpha130
-
- y1 = h1 + alpha32
-
- y0 = h0 + alpha32
-
- y7 -= alpha130
-
- y6 -= alpha130
-
- y1 -= alpha32
-
- y0 -= alpha32
-
- y5 = h5 + alpha96
-
- y4 = h4 + alpha96
-
- x7 = h7 - y7
- y7 *= scale
-
- x6 = h6 - y6
- y6 *= scale
-
- x1 = h1 - y1
-
- x0 = h0 - y0
-
- y5 -= alpha96
-
- y4 -= alpha96
-
- x1 += y7
-
- x0 += y6
-
- x7 += y5
-
- x6 += y4
-
- y3 = h3 + alpha64
-
- y2 = h2 + alpha64
-
- x0 += x1
-
- x6 += x7
-
- y3 -= alpha64
- r3low = r3low_stack
-
- y2 -= alpha64
- r0low = r0low_stack
-
- x5 = h5 - y5
- r3lowx0 = r3low * x0
- r3high = r3high_stack
-
- x4 = h4 - y4
- r0lowx6 = r0low * x6
- r0high = r0high_stack
-
- x3 = h3 - y3
- r3highx0 = r3high * x0
- sr1low = sr1low_stack
-
- x2 = h2 - y2
- r0highx6 = r0high * x6
- sr1high = sr1high_stack
-
- x5 += y3
- r0lowx0 = r0low * x0
- r1low = r1low_stack
-
- h6 = r3lowx0 + r0lowx6
- sr1lowx6 = sr1low * x6
- r1high = r1high_stack
-
- x4 += y2
- r0highx0 = r0high * x0
- sr2low = sr2low_stack
-
- h7 = r3highx0 + r0highx6
- sr1highx6 = sr1high * x6
- sr2high = sr2high_stack
-
- x3 += y1
- r1lowx0 = r1low * x0
- r2low = r2low_stack
-
- h0 = r0lowx0 + sr1lowx6
- sr2lowx6 = sr2low * x6
- r2high = r2high_stack
-
- x2 += y0
- r1highx0 = r1high * x0
- sr3low = sr3low_stack
-
- h1 = r0highx0 + sr1highx6
- sr2highx6 = sr2high * x6
- sr3high = sr3high_stack
-
- x4 += x5
- r2lowx0 = r2low * x0
-
- h2 = r1lowx0 + sr2lowx6
- sr3lowx6 = sr3low * x6
-
- x2 += x3
- r2highx0 = r2high * x0
-
- h3 = r1highx0 + sr2highx6
- sr3highx6 = sr3high * x6
-
- r1highx4 = r1high * x4
-
- h4 = r2lowx0 + sr3lowx6
- r1lowx4 = r1low * x4
-
- r0highx4 = r0high * x4
-
- h5 = r2highx0 + sr3highx6
- r0lowx4 = r0low * x4
-
- h7 += r1highx4
- sr3highx4 = sr3high * x4
-
- h6 += r1lowx4
- sr3lowx4 = sr3low * x4
-
- h5 += r0highx4
- sr2highx4 = sr2high * x4
-
- h4 += r0lowx4
- sr2lowx4 = sr2low * x4
-
- h3 += sr3highx4
- r0lowx2 = r0low * x2
-
- h2 += sr3lowx4
- r0highx2 = r0high * x2
-
- h1 += sr2highx4
- r1lowx2 = r1low * x2
-
- h0 += sr2lowx4
- r1highx2 = r1high * x2
-
- h2 += r0lowx2
- r2lowx2 = r2low * x2
-
- h3 += r0highx2
- r2highx2 = r2high * x2
-
- h4 += r1lowx2
- sr3lowx2 = sr3low * x2
-
- h5 += r1highx2
- sr3highx2 = sr3high * x2
-
- h6 += r2lowx2
-
- h7 += r2highx2
-
- h0 += sr3lowx2
-
- h1 += sr3highx2
-
-addatmost15bytes:
-
- if l == 0 {
- goto nomorebytes
+ if len(msg) > 0 {
+ var block [TagSize]byte
+ off := copy(block[:], msg)
+ block[off] = 0x01
+
+ // h += msg
+ h0 += binary.LittleEndian.Uint32(block[0:]) & 0x3ffffff
+ h1 += (binary.LittleEndian.Uint32(block[3:]) >> 2) & 0x3ffffff
+ h2 += (binary.LittleEndian.Uint32(block[6:]) >> 4) & 0x3ffffff
+ h3 += (binary.LittleEndian.Uint32(block[9:]) >> 6) & 0x3ffffff
+ h4 += (binary.LittleEndian.Uint32(block[12:]) >> 8)
+
+ // h *= r
+ d0 := (uint64(h0) * r0) + (uint64(h1) * R4) + (uint64(h2) * R3) + (uint64(h3) * R2) + (uint64(h4) * R1)
+ d1 := (d0 >> 26) + (uint64(h0) * r1) + (uint64(h1) * r0) + (uint64(h2) * R4) + (uint64(h3) * R3) + (uint64(h4) * R2)
+ d2 := (d1 >> 26) + (uint64(h0) * r2) + (uint64(h1) * r1) + (uint64(h2) * r0) + (uint64(h3) * R4) + (uint64(h4) * R3)
+ d3 := (d2 >> 26) + (uint64(h0) * r3) + (uint64(h1) * r2) + (uint64(h2) * r1) + (uint64(h3) * r0) + (uint64(h4) * R4)
+ d4 := (d3 >> 26) + (uint64(h0) * r4) + (uint64(h1) * r3) + (uint64(h2) * r2) + (uint64(h3) * r1) + (uint64(h4) * r0)
+
+ // h %= p
+ h0 = uint32(d0) & 0x3ffffff
+ h1 = uint32(d1) & 0x3ffffff
+ h2 = uint32(d2) & 0x3ffffff
+ h3 = uint32(d3) & 0x3ffffff
+ h4 = uint32(d4) & 0x3ffffff
+
+ h0 += uint32(d4>>26) * 5
+ h1 += h0 >> 26
+ h0 = h0 & 0x3ffffff
}
- lbelow2 = l - 2
-
- lbelow3 = l - 3
-
- lbelow2 >>= 31
- lbelow4 = l - 4
-
- m00 = uint32(m[p+0])
- lbelow3 >>= 31
- p += lbelow2
-
- m01 = uint32(m[p+1])
- lbelow4 >>= 31
- p += lbelow3
-
- m02 = uint32(m[p+2])
- p += lbelow4
- m0 = 2151
-
- m03 = uint32(m[p+3])
- m0 <<= 51
- m1 = 2215
-
- m0 += int64(m00)
- m01 &^= uint32(lbelow2)
-
- m02 &^= uint32(lbelow3)
- m01 -= uint32(lbelow2)
-
- m01 <<= 8
- m03 &^= uint32(lbelow4)
-
- m0 += int64(m01)
- lbelow2 -= lbelow3
-
- m02 += uint32(lbelow2)
- lbelow3 -= lbelow4
-
- m02 <<= 16
- m03 += uint32(lbelow3)
-
- m03 <<= 24
- m0 += int64(m02)
-
- m0 += int64(m03)
- lbelow5 = l - 5
-
- lbelow6 = l - 6
- lbelow7 = l - 7
-
- lbelow5 >>= 31
- lbelow8 = l - 8
-
- lbelow6 >>= 31
- p += lbelow5
-
- m10 = uint32(m[p+4])
- lbelow7 >>= 31
- p += lbelow6
-
- m11 = uint32(m[p+5])
- lbelow8 >>= 31
- p += lbelow7
-
- m12 = uint32(m[p+6])
- m1 <<= 51
- p += lbelow8
-
- m13 = uint32(m[p+7])
- m10 &^= uint32(lbelow5)
- lbelow4 -= lbelow5
-
- m10 += uint32(lbelow4)
- lbelow5 -= lbelow6
-
- m11 &^= uint32(lbelow6)
- m11 += uint32(lbelow5)
-
- m11 <<= 8
- m1 += int64(m10)
-
- m1 += int64(m11)
- m12 &^= uint32(lbelow7)
-
- lbelow6 -= lbelow7
- m13 &^= uint32(lbelow8)
-
- m12 += uint32(lbelow6)
- lbelow7 -= lbelow8
-
- m12 <<= 16
- m13 += uint32(lbelow7)
-
- m13 <<= 24
- m1 += int64(m12)
-
- m1 += int64(m13)
- m2 = 2279
-
- lbelow9 = l - 9
- m3 = 2343
-
- lbelow10 = l - 10
- lbelow11 = l - 11
-
- lbelow9 >>= 31
- lbelow12 = l - 12
-
- lbelow10 >>= 31
- p += lbelow9
-
- m20 = uint32(m[p+8])
- lbelow11 >>= 31
- p += lbelow10
-
- m21 = uint32(m[p+9])
- lbelow12 >>= 31
- p += lbelow11
-
- m22 = uint32(m[p+10])
- m2 <<= 51
- p += lbelow12
-
- m23 = uint32(m[p+11])
- m20 &^= uint32(lbelow9)
- lbelow8 -= lbelow9
-
- m20 += uint32(lbelow8)
- lbelow9 -= lbelow10
-
- m21 &^= uint32(lbelow10)
- m21 += uint32(lbelow9)
-
- m21 <<= 8
- m2 += int64(m20)
-
- m2 += int64(m21)
- m22 &^= uint32(lbelow11)
-
- lbelow10 -= lbelow11
- m23 &^= uint32(lbelow12)
-
- m22 += uint32(lbelow10)
- lbelow11 -= lbelow12
-
- m22 <<= 16
- m23 += uint32(lbelow11)
-
- m23 <<= 24
- m2 += int64(m22)
-
- m3 <<= 51
- lbelow13 = l - 13
-
- lbelow13 >>= 31
- lbelow14 = l - 14
-
- lbelow14 >>= 31
- p += lbelow13
- lbelow15 = l - 15
-
- m30 = uint32(m[p+12])
- lbelow15 >>= 31
- p += lbelow14
-
- m31 = uint32(m[p+13])
- p += lbelow15
- m2 += int64(m23)
-
- m32 = uint32(m[p+14])
- m30 &^= uint32(lbelow13)
- lbelow12 -= lbelow13
-
- m30 += uint32(lbelow12)
- lbelow13 -= lbelow14
-
- m3 += int64(m30)
- m31 &^= uint32(lbelow14)
-
- m31 += uint32(lbelow13)
- m32 &^= uint32(lbelow15)
-
- m31 <<= 8
- lbelow14 -= lbelow15
-
- m3 += int64(m31)
- m32 += uint32(lbelow14)
- d0 = m0
-
- m32 <<= 16
- m33 = uint64(lbelow15 + 1)
- d1 = m1
-
- m33 <<= 24
- m3 += int64(m32)
- d2 = m2
-
- m3 += int64(m33)
- d3 = m3
-
- z3 = math.Float64frombits(uint64(d3))
-
- z2 = math.Float64frombits(uint64(d2))
-
- z1 = math.Float64frombits(uint64(d1))
-
- z0 = math.Float64frombits(uint64(d0))
-
- z3 -= alpha96
-
- z2 -= alpha64
-
- z1 -= alpha32
-
- z0 -= alpha0
-
- h5 += z3
-
- h3 += z2
-
- h1 += z1
-
- h0 += z0
-
- y7 = h7 + alpha130
-
- y6 = h6 + alpha130
-
- y1 = h1 + alpha32
-
- y0 = h0 + alpha32
-
- y7 -= alpha130
-
- y6 -= alpha130
-
- y1 -= alpha32
-
- y0 -= alpha32
-
- y5 = h5 + alpha96
-
- y4 = h4 + alpha96
-
- x7 = h7 - y7
- y7 *= scale
-
- x6 = h6 - y6
- y6 *= scale
-
- x1 = h1 - y1
-
- x0 = h0 - y0
-
- y5 -= alpha96
-
- y4 -= alpha96
-
- x1 += y7
-
- x0 += y6
-
- x7 += y5
-
- x6 += y4
-
- y3 = h3 + alpha64
-
- y2 = h2 + alpha64
-
- x0 += x1
-
- x6 += x7
-
- y3 -= alpha64
- r3low = r3low_stack
-
- y2 -= alpha64
- r0low = r0low_stack
-
- x5 = h5 - y5
- r3lowx0 = r3low * x0
- r3high = r3high_stack
-
- x4 = h4 - y4
- r0lowx6 = r0low * x6
- r0high = r0high_stack
-
- x3 = h3 - y3
- r3highx0 = r3high * x0
- sr1low = sr1low_stack
-
- x2 = h2 - y2
- r0highx6 = r0high * x6
- sr1high = sr1high_stack
-
- x5 += y3
- r0lowx0 = r0low * x0
- r1low = r1low_stack
-
- h6 = r3lowx0 + r0lowx6
- sr1lowx6 = sr1low * x6
- r1high = r1high_stack
-
- x4 += y2
- r0highx0 = r0high * x0
- sr2low = sr2low_stack
-
- h7 = r3highx0 + r0highx6
- sr1highx6 = sr1high * x6
- sr2high = sr2high_stack
-
- x3 += y1
- r1lowx0 = r1low * x0
- r2low = r2low_stack
-
- h0 = r0lowx0 + sr1lowx6
- sr2lowx6 = sr2low * x6
- r2high = r2high_stack
-
- x2 += y0
- r1highx0 = r1high * x0
- sr3low = sr3low_stack
-
- h1 = r0highx0 + sr1highx6
- sr2highx6 = sr2high * x6
- sr3high = sr3high_stack
-
- x4 += x5
- r2lowx0 = r2low * x0
-
- h2 = r1lowx0 + sr2lowx6
- sr3lowx6 = sr3low * x6
-
- x2 += x3
- r2highx0 = r2high * x0
-
- h3 = r1highx0 + sr2highx6
- sr3highx6 = sr3high * x6
-
- r1highx4 = r1high * x4
-
- h4 = r2lowx0 + sr3lowx6
- r1lowx4 = r1low * x4
-
- r0highx4 = r0high * x4
-
- h5 = r2highx0 + sr3highx6
- r0lowx4 = r0low * x4
-
- h7 += r1highx4
- sr3highx4 = sr3high * x4
-
- h6 += r1lowx4
- sr3lowx4 = sr3low * x4
-
- h5 += r0highx4
- sr2highx4 = sr2high * x4
-
- h4 += r0lowx4
- sr2lowx4 = sr2low * x4
-
- h3 += sr3highx4
- r0lowx2 = r0low * x2
-
- h2 += sr3lowx4
- r0highx2 = r0high * x2
-
- h1 += sr2highx4
- r1lowx2 = r1low * x2
-
- h0 += sr2lowx4
- r1highx2 = r1high * x2
-
- h2 += r0lowx2
- r2lowx2 = r2low * x2
-
- h3 += r0highx2
- r2highx2 = r2high * x2
-
- h4 += r1lowx2
- sr3lowx2 = sr3low * x2
-
- h5 += r1highx2
- sr3highx2 = sr3high * x2
-
- h6 += r2lowx2
-
- h7 += r2highx2
-
- h0 += sr3lowx2
-
- h1 += sr3highx2
-
-nomorebytes:
-
- y7 = h7 + alpha130
-
- y0 = h0 + alpha32
-
- y1 = h1 + alpha32
-
- y2 = h2 + alpha64
-
- y7 -= alpha130
-
- y3 = h3 + alpha64
-
- y4 = h4 + alpha96
-
- y5 = h5 + alpha96
-
- x7 = h7 - y7
- y7 *= scale
-
- y0 -= alpha32
-
- y1 -= alpha32
-
- y2 -= alpha64
-
- h6 += x7
-
- y3 -= alpha64
-
- y4 -= alpha96
-
- y5 -= alpha96
-
- y6 = h6 + alpha130
-
- x0 = h0 - y0
-
- x1 = h1 - y1
-
- x2 = h2 - y2
-
- y6 -= alpha130
-
- x0 += y7
-
- x3 = h3 - y3
-
- x4 = h4 - y4
-
- x5 = h5 - y5
-
- x6 = h6 - y6
-
- y6 *= scale
-
- x2 += y0
-
- x3 += y1
-
- x4 += y2
-
- x0 += y6
-
- x5 += y3
-
- x6 += y4
-
- x2 += x3
-
- x0 += x1
-
- x4 += x5
-
- x6 += y5
-
- x2 += offset1
- d1 = int64(math.Float64bits(x2))
-
- x0 += offset0
- d0 = int64(math.Float64bits(x0))
-
- x4 += offset2
- d2 = int64(math.Float64bits(x4))
-
- x6 += offset3
- d3 = int64(math.Float64bits(x6))
-
- f0 = uint64(d0)
-
- f1 = uint64(d1)
- bits32 = math.MaxUint64
-
- f2 = uint64(d2)
- bits32 >>= 32
-
- f3 = uint64(d3)
- f = f0 >> 32
-
- f0 &= bits32
- f &= 255
-
- f1 += f
- g0 = f0 + 5
-
- g = g0 >> 32
- g0 &= bits32
-
- f = f1 >> 32
- f1 &= bits32
-
- f &= 255
- g1 = f1 + g
-
- g = g1 >> 32
- f2 += f
-
- f = f2 >> 32
- g1 &= bits32
-
- f2 &= bits32
- f &= 255
-
- f3 += f
- g2 = f2 + g
-
- g = g2 >> 32
- g2 &= bits32
-
- f4 = f3 >> 32
- f3 &= bits32
-
- f4 &= 255
- g3 = f3 + g
-
- g = g3 >> 32
- g3 &= bits32
-
- g4 = f4 + g
-
- g4 = g4 - 4
- s00 = uint32(s[0])
-
- f = uint64(int64(g4) >> 63)
- s01 = uint32(s[1])
-
- f0 &= f
- g0 &^= f
- s02 = uint32(s[2])
-
- f1 &= f
- f0 |= g0
- s03 = uint32(s[3])
-
- g1 &^= f
- f2 &= f
- s10 = uint32(s[4])
-
- f3 &= f
- g2 &^= f
- s11 = uint32(s[5])
-
- g3 &^= f
- f1 |= g1
- s12 = uint32(s[6])
-
- f2 |= g2
- f3 |= g3
- s13 = uint32(s[7])
-
- s01 <<= 8
- f0 += uint64(s00)
- s20 = uint32(s[8])
-
- s02 <<= 16
- f0 += uint64(s01)
- s21 = uint32(s[9])
-
- s03 <<= 24
- f0 += uint64(s02)
- s22 = uint32(s[10])
-
- s11 <<= 8
- f1 += uint64(s10)
- s23 = uint32(s[11])
-
- s12 <<= 16
- f1 += uint64(s11)
- s30 = uint32(s[12])
-
- s13 <<= 24
- f1 += uint64(s12)
- s31 = uint32(s[13])
-
- f0 += uint64(s03)
- f1 += uint64(s13)
- s32 = uint32(s[14])
-
- s21 <<= 8
- f2 += uint64(s20)
- s33 = uint32(s[15])
-
- s22 <<= 16
- f2 += uint64(s21)
-
- s23 <<= 24
- f2 += uint64(s22)
-
- s31 <<= 8
- f3 += uint64(s30)
-
- s32 <<= 16
- f3 += uint64(s31)
-
- s33 <<= 24
- f3 += uint64(s32)
-
- f2 += uint64(s23)
- f3 += uint64(s33)
-
- out[0] = byte(f0)
- f0 >>= 8
- out[1] = byte(f0)
- f0 >>= 8
- out[2] = byte(f0)
- f0 >>= 8
- out[3] = byte(f0)
- f0 >>= 8
- f1 += f0
-
- out[4] = byte(f1)
- f1 >>= 8
- out[5] = byte(f1)
- f1 >>= 8
- out[6] = byte(f1)
- f1 >>= 8
- out[7] = byte(f1)
- f1 >>= 8
- f2 += f1
-
- out[8] = byte(f2)
- f2 >>= 8
- out[9] = byte(f2)
- f2 >>= 8
- out[10] = byte(f2)
- f2 >>= 8
- out[11] = byte(f2)
- f2 >>= 8
- f3 += f2
-
- out[12] = byte(f3)
- f3 >>= 8
- out[13] = byte(f3)
- f3 >>= 8
- out[14] = byte(f3)
- f3 >>= 8
- out[15] = byte(f3)
+ // h %= p reduction
+ h2 += h1 >> 26
+ h1 &= 0x3ffffff
+ h3 += h2 >> 26
+ h2 &= 0x3ffffff
+ h4 += h3 >> 26
+ h3 &= 0x3ffffff
+ h0 += 5 * (h4 >> 26)
+ h4 &= 0x3ffffff
+ h1 += h0 >> 26
+ h0 &= 0x3ffffff
+
+ // h - p
+ t0 := h0 + 5
+ t1 := h1 + (t0 >> 26)
+ t2 := h2 + (t1 >> 26)
+ t3 := h3 + (t2 >> 26)
+ t4 := h4 + (t3 >> 26) - (1 << 26)
+ t0 &= 0x3ffffff
+ t1 &= 0x3ffffff
+ t2 &= 0x3ffffff
+ t3 &= 0x3ffffff
+
+ // select h if h < p else h - p
+ t_mask := (t4 >> 31) - 1
+ h_mask := ^t_mask
+ h0 = (h0 & h_mask) | (t0 & t_mask)
+ h1 = (h1 & h_mask) | (t1 & t_mask)
+ h2 = (h2 & h_mask) | (t2 & t_mask)
+ h3 = (h3 & h_mask) | (t3 & t_mask)
+ h4 = (h4 & h_mask) | (t4 & t_mask)
+
+ // h %= 2^128
+ h0 |= h1 << 26
+ h1 = ((h1 >> 6) | (h2 << 20))
+ h2 = ((h2 >> 12) | (h3 << 14))
+ h3 = ((h3 >> 18) | (h4 << 8))
+
+ // s: the s part of the key
+ // tag = (h + s) % (2^128)
+ t := uint64(h0) + uint64(binary.LittleEndian.Uint32(key[16:]))
+ h0 = uint32(t)
+ t = uint64(h1) + uint64(binary.LittleEndian.Uint32(key[20:])) + (t >> 32)
+ h1 = uint32(t)
+ t = uint64(h2) + uint64(binary.LittleEndian.Uint32(key[24:])) + (t >> 32)
+ h2 = uint32(t)
+ t = uint64(h3) + uint64(binary.LittleEndian.Uint32(key[28:])) + (t >> 32)
+ h3 = uint32(t)
+
+ binary.LittleEndian.PutUint32(out[0:], h0)
+ binary.LittleEndian.PutUint32(out[4:], h1)
+ binary.LittleEndian.PutUint32(out[8:], h2)
+ binary.LittleEndian.PutUint32(out[12:], h3)
}
diff --git a/vendor/golang.org/x/crypto/ssh/agent/client_test.go b/vendor/golang.org/x/crypto/ssh/agent/client_test.go
index e33d47138..a13a65001 100644
--- a/vendor/golang.org/x/crypto/ssh/agent/client_test.go
+++ b/vendor/golang.org/x/crypto/ssh/agent/client_test.go
@@ -180,7 +180,7 @@ func TestCert(t *testing.T) {
// therefore is buffered (net.Pipe deadlocks if both sides start with
// a write.)
func netPipe() (net.Conn, net.Conn, error) {
- listener, err := net.Listen("tcp", "127.0.0.1:0")
+ listener, err := net.Listen("tcp", ":0")
if err != nil {
return nil, nil, err
}
diff --git a/vendor/golang.org/x/crypto/ssh/cipher.go b/vendor/golang.org/x/crypto/ssh/cipher.go
index 34d3917c4..13484ab4b 100644
--- a/vendor/golang.org/x/crypto/ssh/cipher.go
+++ b/vendor/golang.org/x/crypto/ssh/cipher.go
@@ -135,6 +135,7 @@ const prefixLen = 5
type streamPacketCipher struct {
mac hash.Hash
cipher cipher.Stream
+ etm bool
// The following members are to avoid per-packet allocations.
prefix [prefixLen]byte
@@ -150,7 +151,14 @@ func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, err
return nil, err
}
- s.cipher.XORKeyStream(s.prefix[:], s.prefix[:])
+ var encryptedPaddingLength [1]byte
+ if s.mac != nil && s.etm {
+ copy(encryptedPaddingLength[:], s.prefix[4:5])
+ s.cipher.XORKeyStream(s.prefix[4:5], s.prefix[4:5])
+ } else {
+ s.cipher.XORKeyStream(s.prefix[:], s.prefix[:])
+ }
+
length := binary.BigEndian.Uint32(s.prefix[0:4])
paddingLength := uint32(s.prefix[4])
@@ -159,7 +167,12 @@ func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, err
s.mac.Reset()
binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum)
s.mac.Write(s.seqNumBytes[:])
- s.mac.Write(s.prefix[:])
+ if s.etm {
+ s.mac.Write(s.prefix[:4])
+ s.mac.Write(encryptedPaddingLength[:])
+ } else {
+ s.mac.Write(s.prefix[:])
+ }
macSize = uint32(s.mac.Size())
}
@@ -184,10 +197,17 @@ func (s *streamPacketCipher) readPacket(seqNum uint32, r io.Reader) ([]byte, err
}
mac := s.packetData[length-1:]
data := s.packetData[:length-1]
+
+ if s.mac != nil && s.etm {
+ s.mac.Write(data)
+ }
+
s.cipher.XORKeyStream(data, data)
if s.mac != nil {
- s.mac.Write(data)
+ if !s.etm {
+ s.mac.Write(data)
+ }
s.macResult = s.mac.Sum(s.macResult[:0])
if subtle.ConstantTimeCompare(s.macResult, mac) != 1 {
return nil, errors.New("ssh: MAC failure")
@@ -203,7 +223,13 @@ func (s *streamPacketCipher) writePacket(seqNum uint32, w io.Writer, rand io.Rea
return errors.New("ssh: packet too large")
}
- paddingLength := packetSizeMultiple - (prefixLen+len(packet))%packetSizeMultiple
+ aadlen := 0
+ if s.mac != nil && s.etm {
+ // packet length is not encrypted for EtM modes
+ aadlen = 4
+ }
+
+ paddingLength := packetSizeMultiple - (prefixLen+len(packet)-aadlen)%packetSizeMultiple
if paddingLength < 4 {
paddingLength += packetSizeMultiple
}
@@ -220,15 +246,37 @@ func (s *streamPacketCipher) writePacket(seqNum uint32, w io.Writer, rand io.Rea
s.mac.Reset()
binary.BigEndian.PutUint32(s.seqNumBytes[:], seqNum)
s.mac.Write(s.seqNumBytes[:])
+
+ if s.etm {
+ // For EtM algorithms, the packet length must stay unencrypted,
+ // but the following data (padding length) must be encrypted
+ s.cipher.XORKeyStream(s.prefix[4:5], s.prefix[4:5])
+ }
+
s.mac.Write(s.prefix[:])
- s.mac.Write(packet)
- s.mac.Write(padding)
+
+ if !s.etm {
+ // For non-EtM algorithms, the algorithm is applied on unencrypted data
+ s.mac.Write(packet)
+ s.mac.Write(padding)
+ }
+ }
+
+ if !(s.mac != nil && s.etm) {
+ // For EtM algorithms, the padding length has already been encrypted
+ // and the packet length must remain unencrypted
+ s.cipher.XORKeyStream(s.prefix[:], s.prefix[:])
}
- s.cipher.XORKeyStream(s.prefix[:], s.prefix[:])
s.cipher.XORKeyStream(packet, packet)
s.cipher.XORKeyStream(padding, padding)
+ if s.mac != nil && s.etm {
+ // For EtM algorithms, packet and padding must be encrypted
+ s.mac.Write(packet)
+ s.mac.Write(padding)
+ }
+
if _, err := w.Write(s.prefix[:]); err != nil {
return err
}
diff --git a/vendor/golang.org/x/crypto/ssh/cipher_test.go b/vendor/golang.org/x/crypto/ssh/cipher_test.go
index eced8d851..5cfa17a62 100644
--- a/vendor/golang.org/x/crypto/ssh/cipher_test.go
+++ b/vendor/golang.org/x/crypto/ssh/cipher_test.go
@@ -26,39 +26,41 @@ func TestPacketCiphers(t *testing.T) {
defer delete(cipherModes, aes128cbcID)
for cipher := range cipherModes {
- kr := &kexResult{Hash: crypto.SHA1}
- algs := directionAlgorithms{
- Cipher: cipher,
- MAC: "hmac-sha1",
- Compression: "none",
- }
- client, err := newPacketCipher(clientKeys, algs, kr)
- if err != nil {
- t.Errorf("newPacketCipher(client, %q): %v", cipher, err)
- continue
- }
- server, err := newPacketCipher(clientKeys, algs, kr)
- if err != nil {
- t.Errorf("newPacketCipher(client, %q): %v", cipher, err)
- continue
- }
-
- want := "bla bla"
- input := []byte(want)
- buf := &bytes.Buffer{}
- if err := client.writePacket(0, buf, rand.Reader, input); err != nil {
- t.Errorf("writePacket(%q): %v", cipher, err)
- continue
- }
-
- packet, err := server.readPacket(0, buf)
- if err != nil {
- t.Errorf("readPacket(%q): %v", cipher, err)
- continue
- }
-
- if string(packet) != want {
- t.Errorf("roundtrip(%q): got %q, want %q", cipher, packet, want)
+ for mac := range macModes {
+ kr := &kexResult{Hash: crypto.SHA1}
+ algs := directionAlgorithms{
+ Cipher: cipher,
+ MAC: mac,
+ Compression: "none",
+ }
+ client, err := newPacketCipher(clientKeys, algs, kr)
+ if err != nil {
+ t.Errorf("newPacketCipher(client, %q, %q): %v", cipher, mac, err)
+ continue
+ }
+ server, err := newPacketCipher(clientKeys, algs, kr)
+ if err != nil {
+ t.Errorf("newPacketCipher(client, %q, %q): %v", cipher, mac, err)
+ continue
+ }
+
+ want := "bla bla"
+ input := []byte(want)
+ buf := &bytes.Buffer{}
+ if err := client.writePacket(0, buf, rand.Reader, input); err != nil {
+ t.Errorf("writePacket(%q, %q): %v", cipher, mac, err)
+ continue
+ }
+
+ packet, err := server.readPacket(0, buf)
+ if err != nil {
+ t.Errorf("readPacket(%q, %q): %v", cipher, mac, err)
+ continue
+ }
+
+ if string(packet) != want {
+ t.Errorf("roundtrip(%q, %q): got %q, want %q", cipher, mac, packet, want)
+ }
}
}
}
diff --git a/vendor/golang.org/x/crypto/ssh/client_auth_test.go b/vendor/golang.org/x/crypto/ssh/client_auth_test.go
index 1d9681a06..e384c796b 100644
--- a/vendor/golang.org/x/crypto/ssh/client_auth_test.go
+++ b/vendor/golang.org/x/crypto/ssh/client_auth_test.go
@@ -333,14 +333,14 @@ func TestClientLoginCert(t *testing.T) {
}
// allowed source address
- cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42/24"}
+ cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42/24,::42/120"}
cert.SignCert(rand.Reader, testSigners["ecdsa"])
if err := tryAuth(t, clientConfig); err != nil {
t.Errorf("cert login with source-address failed: %v", err)
}
// disallowed source address
- cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42"}
+ cert.CriticalOptions = map[string]string{"source-address": "127.0.0.42,::42"}
cert.SignCert(rand.Reader, testSigners["ecdsa"])
if err := tryAuth(t, clientConfig); err == nil {
t.Errorf("cert login with source-address succeeded")
diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go
index faabb7ef9..8656d0f85 100644
--- a/vendor/golang.org/x/crypto/ssh/common.go
+++ b/vendor/golang.org/x/crypto/ssh/common.go
@@ -56,7 +56,7 @@ var supportedHostKeyAlgos = []string{
// 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", "hmac-sha1", "hmac-sha1-96",
+ "hmac-sha2-256-etm@openssh.com", "hmac-sha2-256", "hmac-sha1", "hmac-sha1-96",
}
var supportedCompressions = []string{compressionNone}
diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go
index 57f2d3daf..8de650644 100644
--- a/vendor/golang.org/x/crypto/ssh/handshake.go
+++ b/vendor/golang.org/x/crypto/ssh/handshake.go
@@ -66,8 +66,8 @@ type handshakeTransport struct {
// If the read loop wants to schedule a kex, it pings this
// channel, and the write loop will send out a kex
- // message. The boolean is whether this is the first request or not.
- requestKex chan bool
+ // message.
+ requestKex chan struct{}
// If the other side requests or confirms a kex, its kexInit
// packet is sent here for the write loop to find it.
@@ -102,14 +102,14 @@ func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion,
serverVersion: serverVersion,
clientVersion: clientVersion,
incoming: make(chan []byte, chanSize),
- requestKex: make(chan bool, 1),
+ requestKex: make(chan struct{}, 1),
startKex: make(chan *pendingKex, 1),
config: config,
}
// We always start with a mandatory key exchange.
- t.requestKex <- true
+ t.requestKex <- struct{}{}
return t
}
@@ -166,6 +166,7 @@ func (t *handshakeTransport) printPacket(p []byte, write bool) {
if write {
action = "sent"
}
+
if p[0] == msgChannelData || p[0] == msgChannelExtendedData {
log.Printf("%s %s data (packet %d bytes)", t.id(), action, len(p))
} else {
@@ -230,14 +231,13 @@ func (t *handshakeTransport) recordWriteError(err error) {
func (t *handshakeTransport) requestKeyExchange() {
select {
- case t.requestKex <- false:
+ case t.requestKex <- struct{}{}:
default:
// something already requested a kex, so do nothing.
}
}
func (t *handshakeTransport) kexLoop() {
- firstSent := false
write:
for t.getWriteError() == nil {
@@ -251,18 +251,8 @@ write:
if !ok {
break write
}
- case requestFirst := <-t.requestKex:
- // For the first key exchange, both
- // sides will initiate a key exchange,
- // and both channels will fire. To
- // avoid doing two key exchanges in a
- // row, ignore our own request for an
- // initial kex if we have already sent
- // it out.
- if firstSent && requestFirst {
-
- continue
- }
+ case <-t.requestKex:
+ break
}
if !sent {
@@ -270,7 +260,6 @@ write:
t.recordWriteError(err)
break
}
- firstSent = true
sent = true
}
}
@@ -287,7 +276,8 @@ write:
// We're not servicing t.startKex, but the remote end
// has just sent us a kexInitMsg, so it can't send
- // another key change request.
+ // another key change request, until we close the done
+ // channel on the pendingKex request.
err := t.enterKeyExchange(request.otherInit)
@@ -301,6 +291,23 @@ write:
} else if t.algorithms != nil {
t.writeBytesLeft = t.algorithms.w.rekeyBytes()
}
+
+ // we have completed the key exchange. Since the
+ // reader is still blocked, it is safe to clear out
+ // the requestKex channel. This avoids the situation
+ // where: 1) we consumed our own request for the
+ // initial kex, and 2) the kex from the remote side
+ // caused another send on the requestKex channel,
+ clear:
+ for {
+ select {
+ case <-t.requestKex:
+ //
+ default:
+ break clear
+ }
+ }
+
request.done <- t.writeError
// kex finished. Push packets that we received while
@@ -314,7 +321,7 @@ write:
break
}
}
- t.pendingPackets = t.pendingPackets[0:]
+ t.pendingPackets = t.pendingPackets[:0]
t.mu.Unlock()
}
diff --git a/vendor/golang.org/x/crypto/ssh/handshake_test.go b/vendor/golang.org/x/crypto/ssh/handshake_test.go
index e61348fea..1b831127e 100644
--- a/vendor/golang.org/x/crypto/ssh/handshake_test.go
+++ b/vendor/golang.org/x/crypto/ssh/handshake_test.go
@@ -40,7 +40,7 @@ func (t *testChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error
// therefore is buffered (net.Pipe deadlocks if both sides start with
// a write.)
func netPipe() (net.Conn, net.Conn, error) {
- listener, err := net.Listen("tcp", "127.0.0.1:0")
+ listener, err := net.Listen("tcp", ":0")
if err != nil {
return nil, nil, err
}
@@ -125,7 +125,12 @@ func TestHandshakeBasic(t *testing.T) {
t.Skip("see golang.org/issue/7237")
}
- checker := &syncChecker{make(chan int, 10)}
+ checker := &syncChecker{
+ waitCall: make(chan int, 10),
+ called: make(chan int, 10),
+ }
+
+ checker.waitCall <- 1
trC, trS, err := handshakePair(&ClientConfig{HostKeyCallback: checker.Check}, "addr", false)
if err != nil {
t.Fatalf("handshakePair: %v", err)
@@ -134,22 +139,25 @@ func TestHandshakeBasic(t *testing.T) {
defer trC.Close()
defer trS.Close()
+ // Let first kex complete normally.
<-checker.called
clientDone := make(chan int, 0)
gotHalf := make(chan int, 0)
+ const N = 20
go func() {
defer close(clientDone)
// Client writes a bunch of stuff, and does a key
// change in the middle. This should not confuse the
- // handshake in progress
- for i := 0; i < 10; i++ {
+ // handshake in progress. We do this twice, so we test
+ // that the packet buffer is reset correctly.
+ for i := 0; i < N; i++ {
p := []byte{msgRequestSuccess, byte(i)}
if err := trC.writePacket(p); err != nil {
t.Fatalf("sendPacket: %v", err)
}
- if i == 5 {
+ if (i % 10) == 5 {
<-gotHalf
// halfway through, we request a key change.
trC.requestKeyExchange()
@@ -159,32 +167,38 @@ func TestHandshakeBasic(t *testing.T) {
// write more.
<-checker.called
}
+ if (i % 10) == 7 {
+ // write some packets until the kex
+ // completes, to test buffering of
+ // packets.
+ checker.waitCall <- 1
+ }
}
}()
// Server checks that client messages come in cleanly
i := 0
err = nil
- for ; i < 10; i++ {
+ for ; i < N; i++ {
var p []byte
p, err = trS.readPacket()
if err != nil {
break
}
- if i == 5 {
+ if (i % 10) == 5 {
gotHalf <- 1
}
want := []byte{msgRequestSuccess, byte(i)}
if bytes.Compare(p, want) != 0 {
- t.Errorf("message %d: got %q, want %q", i, p, want)
+ t.Errorf("message %d: got %v, want %v", i, p, want)
}
}
<-clientDone
if err != nil && err != io.EOF {
t.Fatalf("server error: %v", err)
}
- if i != 10 {
+ if i != N {
t.Errorf("received %d messages, want 10.", i)
}
@@ -239,7 +253,10 @@ func TestForceFirstKex(t *testing.T) {
}
func TestHandshakeAutoRekeyWrite(t *testing.T) {
- checker := &syncChecker{make(chan int, 10)}
+ checker := &syncChecker{
+ called: make(chan int, 10),
+ waitCall: nil,
+ }
clientConf := &ClientConfig{HostKeyCallback: checker.Check}
clientConf.RekeyThreshold = 500
trC, trS, err := handshakePair(clientConf, "addr", false)
@@ -249,14 +266,19 @@ func TestHandshakeAutoRekeyWrite(t *testing.T) {
defer trC.Close()
defer trS.Close()
+ input := make([]byte, 251)
+ input[0] = msgRequestSuccess
+
done := make(chan int, 1)
const numPacket = 5
go func() {
defer close(done)
j := 0
for ; j < numPacket; j++ {
- if _, err := trS.readPacket(); err != nil {
+ if p, err := trS.readPacket(); err != nil {
break
+ } else if !bytes.Equal(input, p) {
+ t.Errorf("got packet type %d, want %d", p[0], input[0])
}
}
@@ -268,9 +290,9 @@ func TestHandshakeAutoRekeyWrite(t *testing.T) {
<-checker.called
for i := 0; i < numPacket; i++ {
- packet := make([]byte, 251)
- packet[0] = msgRequestSuccess
- if err := trC.writePacket(packet); err != nil {
+ p := make([]byte, len(input))
+ copy(p, input)
+ if err := trC.writePacket(p); err != nil {
t.Errorf("writePacket: %v", err)
}
if i == 2 {
@@ -283,16 +305,23 @@ func TestHandshakeAutoRekeyWrite(t *testing.T) {
}
type syncChecker struct {
- called chan int
+ waitCall chan int
+ called chan int
}
func (c *syncChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error {
c.called <- 1
+ if c.waitCall != nil {
+ <-c.waitCall
+ }
return nil
}
func TestHandshakeAutoRekeyRead(t *testing.T) {
- sync := &syncChecker{make(chan int, 2)}
+ sync := &syncChecker{
+ called: make(chan int, 2),
+ waitCall: nil,
+ }
clientConf := &ClientConfig{
HostKeyCallback: sync.Check,
}
diff --git a/vendor/golang.org/x/crypto/ssh/mac.go b/vendor/golang.org/x/crypto/ssh/mac.go
index 07744ad67..c07a06285 100644
--- a/vendor/golang.org/x/crypto/ssh/mac.go
+++ b/vendor/golang.org/x/crypto/ssh/mac.go
@@ -15,6 +15,7 @@ import (
type macMode struct {
keySize int
+ etm bool
new func(key []byte) hash.Hash
}
@@ -45,13 +46,16 @@ func (t truncatingMAC) Size() int {
func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() }
var macModes = map[string]*macMode{
- "hmac-sha2-256": {32, func(key []byte) hash.Hash {
+ "hmac-sha2-256-etm@openssh.com": {32, true, func(key []byte) hash.Hash {
return hmac.New(sha256.New, key)
}},
- "hmac-sha1": {20, func(key []byte) hash.Hash {
+ "hmac-sha2-256": {32, false, func(key []byte) hash.Hash {
+ return hmac.New(sha256.New, key)
+ }},
+ "hmac-sha1": {20, false, func(key []byte) hash.Hash {
return hmac.New(sha1.New, key)
}},
- "hmac-sha1-96": {20, func(key []byte) hash.Hash {
+ "hmac-sha1-96": {20, false, func(key []byte) hash.Hash {
return truncatingMAC{12, hmac.New(sha1.New, key)}
}},
}
diff --git a/vendor/golang.org/x/crypto/ssh/mux_test.go b/vendor/golang.org/x/crypto/ssh/mux_test.go
index 591aae8e8..25d2181d6 100644
--- a/vendor/golang.org/x/crypto/ssh/mux_test.go
+++ b/vendor/golang.org/x/crypto/ssh/mux_test.go
@@ -499,4 +499,7 @@ func TestDebug(t *testing.T) {
if debugHandshake {
t.Error("handshake debug switched on")
}
+ if debugTransport {
+ t.Error("transport debug switched on")
+ }
}
diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go
index 28b109a9c..77c84d165 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"
+ "strings"
)
// The Permissions type holds fine-grained permissions that are
@@ -231,7 +232,7 @@ func isAcceptableAlgo(algo string) bool {
return false
}
-func checkSourceAddress(addr net.Addr, sourceAddr string) error {
+func checkSourceAddress(addr net.Addr, sourceAddrs string) error {
if addr == nil {
return errors.New("ssh: no address known for client, but source-address match required")
}
@@ -241,18 +242,20 @@ func checkSourceAddress(addr net.Addr, sourceAddr string) error {
return fmt.Errorf("ssh: remote address %v is not an TCP address when checking source-address match", addr)
}
- if allowedIP := net.ParseIP(sourceAddr); allowedIP != nil {
- if allowedIP.Equal(tcpAddr.IP) {
- return nil
- }
- } else {
- _, ipNet, err := net.ParseCIDR(sourceAddr)
- if err != nil {
- return fmt.Errorf("ssh: error parsing source-address restriction %q: %v", sourceAddr, err)
- }
+ for _, sourceAddr := range strings.Split(sourceAddrs, ",") {
+ if allowedIP := net.ParseIP(sourceAddr); allowedIP != nil {
+ if allowedIP.Equal(tcpAddr.IP) {
+ return nil
+ }
+ } else {
+ _, ipNet, err := net.ParseCIDR(sourceAddr)
+ if err != nil {
+ return fmt.Errorf("ssh: error parsing source-address restriction %q: %v", sourceAddr, err)
+ }
- if ipNet.Contains(tcpAddr.IP) {
- return nil
+ if ipNet.Contains(tcpAddr.IP) {
+ return nil
+ }
}
}
diff --git a/vendor/golang.org/x/crypto/ssh/transport.go b/vendor/golang.org/x/crypto/ssh/transport.go
index fd199324d..f9780e0ae 100644
--- a/vendor/golang.org/x/crypto/ssh/transport.go
+++ b/vendor/golang.org/x/crypto/ssh/transport.go
@@ -8,8 +8,13 @@ import (
"bufio"
"errors"
"io"
+ "log"
)
+// debugTransport if set, will print packet types as they go over the
+// wire. No message decoding is done, to minimize the impact on timing.
+const debugTransport = false
+
const (
gcmCipherID = "aes128-gcm@openssh.com"
aes128cbcID = "aes128-cbc"
@@ -40,7 +45,7 @@ type transport struct {
bufReader *bufio.Reader
bufWriter *bufio.Writer
rand io.Reader
-
+ isClient bool
io.Closer
}
@@ -86,6 +91,22 @@ func (t *transport) prepareKeyChange(algs *algorithms, kexResult *kexResult) err
return nil
}
+func (t *transport) printPacket(p []byte, write bool) {
+ if len(p) == 0 {
+ return
+ }
+ who := "server"
+ if t.isClient {
+ who = "client"
+ }
+ what := "read"
+ if write {
+ what = "write"
+ }
+
+ log.Println(what, who, p[0])
+}
+
// Read and decrypt next packet.
func (t *transport) readPacket() (p []byte, err error) {
for {
@@ -97,6 +118,9 @@ func (t *transport) readPacket() (p []byte, err error) {
break
}
}
+ if debugTransport {
+ t.printPacket(p, false)
+ }
return p, err
}
@@ -141,6 +165,9 @@ func (s *connectionState) readPacket(r *bufio.Reader) ([]byte, error) {
}
func (t *transport) writePacket(packet []byte) error {
+ if debugTransport {
+ t.printPacket(packet, true)
+ }
return t.writer.writePacket(t.bufWriter, t.rand, packet)
}
@@ -181,6 +208,8 @@ func newTransport(rwc io.ReadWriteCloser, rand io.Reader, isClient bool) *transp
},
Closer: rwc,
}
+ t.isClient = isClient
+
if isClient {
t.reader.dir = serverKeys
t.writer.dir = clientKeys
@@ -238,6 +267,7 @@ func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (pac
c := &streamPacketCipher{
mac: macModes[algs.MAC].new(macKey),
+ etm: macModes[algs.MAC].etm,
}
c.macResult = make([]byte, c.mac.Size())
diff --git a/vendor/golang.org/x/image/draw/draw.go b/vendor/golang.org/x/image/draw/draw.go
index b92e3c7f9..dfaa7fc55 100644
--- a/vendor/golang.org/x/image/draw/draw.go
+++ b/vendor/golang.org/x/image/draw/draw.go
@@ -11,12 +11,12 @@
// package in the standard library.
package draw
-// This file just contains the API exported by the image/draw package in the
-// standard library. Other files in this package provide additional features.
+// This file, and the go1_*.go files, just contains the API exported by the
+// image/draw package in the standard library. Other files in this package
+// provide additional features.
import (
"image"
- "image/color"
"image/draw"
)
@@ -32,13 +32,6 @@ func DrawMask(dst Image, r image.Rectangle, src image.Image, sp image.Point, mas
draw.DrawMask(dst, r, src, sp, mask, mp, draw.Op(op))
}
-// Drawer contains the Draw method.
-type Drawer interface {
- // Draw aligns r.Min in dst with sp in src and then replaces the
- // rectangle r in dst with the result of drawing src on dst.
- Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point)
-}
-
// FloydSteinberg is a Drawer that is the Src Op with Floyd-Steinberg error
// diffusion.
var FloydSteinberg Drawer = floydSteinberg{}
@@ -48,32 +41,3 @@ type floydSteinberg struct{}
func (floydSteinberg) Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point) {
draw.FloydSteinberg.Draw(dst, r, src, sp)
}
-
-// Image is an image.Image with a Set method to change a single pixel.
-type Image interface {
- image.Image
- Set(x, y int, c color.Color)
-}
-
-// Op is a Porter-Duff compositing operator.
-type Op int
-
-const (
- // Over specifies ``(src in mask) over dst''.
- Over Op = Op(draw.Over)
- // Src specifies ``src in mask''.
- Src Op = Op(draw.Src)
-)
-
-// Draw implements the Drawer interface by calling the Draw function with
-// this Op.
-func (op Op) Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point) {
- (draw.Op(op)).Draw(dst, r, src, sp)
-}
-
-// Quantizer produces a palette for an image.
-type Quantizer interface {
- // Quantize appends up to cap(p) - len(p) colors to p and returns the
- // updated palette suitable for converting m to a paletted image.
- Quantize(p color.Palette, m image.Image) color.Palette
-}
diff --git a/vendor/golang.org/x/image/draw/gen.go b/vendor/golang.org/x/image/draw/gen.go
index 0fed47437..65a712350 100644
--- a/vendor/golang.org/x/image/draw/gen.go
+++ b/vendor/golang.org/x/image/draw/gen.go
@@ -804,7 +804,7 @@ func cOffset(x, y, sratio string) string {
func ycbcrToRGB(lhs, tmp string) string {
s := `
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- $yy1 := int(src.Y[$i]) * 0x10100
+ $yy1 := int(src.Y[$i]) * 0x10101
$cb1 := int(src.Cb[$j]) - 128
$cr1 := int(src.Cr[$j]) - 128
$r@ := ($yy1 + 91881*$cr1) >> 8
diff --git a/vendor/golang.org/x/image/draw/go1_8.go b/vendor/golang.org/x/image/draw/go1_8.go
new file mode 100644
index 000000000..ec192b717
--- /dev/null
+++ b/vendor/golang.org/x/image/draw/go1_8.go
@@ -0,0 +1,49 @@
+// 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.
+
+// +build !go1.9,!go1.8.typealias
+
+package draw
+
+import (
+ "image"
+ "image/color"
+ "image/draw"
+)
+
+// Drawer contains the Draw method.
+type Drawer interface {
+ // Draw aligns r.Min in dst with sp in src and then replaces the
+ // rectangle r in dst with the result of drawing src on dst.
+ Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point)
+}
+
+// Image is an image.Image with a Set method to change a single pixel.
+type Image interface {
+ image.Image
+ Set(x, y int, c color.Color)
+}
+
+// Op is a Porter-Duff compositing operator.
+type Op int
+
+const (
+ // Over specifies ``(src in mask) over dst''.
+ Over Op = Op(draw.Over)
+ // Src specifies ``src in mask''.
+ Src Op = Op(draw.Src)
+)
+
+// Draw implements the Drawer interface by calling the Draw function with
+// this Op.
+func (op Op) Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point) {
+ (draw.Op(op)).Draw(dst, r, src, sp)
+}
+
+// Quantizer produces a palette for an image.
+type Quantizer interface {
+ // Quantize appends up to cap(p) - len(p) colors to p and returns the
+ // updated palette suitable for converting m to a paletted image.
+ Quantize(p color.Palette, m image.Image) color.Palette
+}
diff --git a/vendor/golang.org/x/image/draw/go1_9.go b/vendor/golang.org/x/image/draw/go1_9.go
new file mode 100644
index 000000000..fc548e947
--- /dev/null
+++ b/vendor/golang.org/x/image/draw/go1_9.go
@@ -0,0 +1,57 @@
+// Copyright 2016 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.
+
+// +build go1.9 go1.8.typealias
+
+package draw
+
+import (
+ "image/draw"
+)
+
+// We use type aliases (new in Go 1.9) for the exported names from the standard
+// library's image/draw package. This is not merely syntactic sugar for
+//
+// type Drawer draw.Drawer
+//
+// as aliasing means that the types in this package, such as draw.Image and
+// draw.Op, are identical to the corresponding draw.Image and draw.Op types in
+// the standard library. In comparison, prior to Go 1.9, the code in go1_8.go
+// defines new types that mimic the old but are different types.
+//
+// The package documentation, in draw.go, explicitly gives the intent of this
+// package:
+//
+// This package is a superset of and a drop-in replacement for the
+// image/draw package in the standard library.
+//
+// Drop-in replacement means that I can replace all of my "image/draw" imports
+// with "golang.org/x/image/draw", to access additional features in this
+// package, and no further changes are required. That's mostly true, but not
+// completely true unless we use type aliases.
+//
+// Without type aliases, users might need to import both "image/draw" and
+// "golang.org/x/image/draw" in order to convert from two conceptually
+// equivalent but different (from the compiler's point of view) types, such as
+// from one draw.Op type to another draw.Op type, to satisfy some other
+// interface or function signature.
+
+// Drawer contains the Draw method.
+type Drawer = draw.Drawer
+
+// Image is an image.Image with a Set method to change a single pixel.
+type Image = draw.Image
+
+// Op is a Porter-Duff compositing operator.
+type Op = draw.Op
+
+const (
+ // Over specifies ``(src in mask) over dst''.
+ Over Op = draw.Over
+ // Src specifies ``src in mask''.
+ Src Op = draw.Src
+)
+
+// Quantizer produces a palette for an image.
+type Quantizer = draw.Quantizer
diff --git a/vendor/golang.org/x/image/draw/impl.go b/vendor/golang.org/x/image/draw/impl.go
index d6484d734..637887be6 100644
--- a/vendor/golang.org/x/image/draw/impl.go
+++ b/vendor/golang.org/x/image/draw/impl.go
@@ -343,7 +343,7 @@ func (nnInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Rec
pj := (sr.Min.Y+int(sy)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pr := (pyy1 + 91881*pcr1) >> 8
@@ -386,7 +386,7 @@ func (nnInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Rec
pj := (sr.Min.Y+int(sy)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pr := (pyy1 + 91881*pcr1) >> 8
@@ -429,7 +429,7 @@ func (nnInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Rec
pj := ((sr.Min.Y+int(sy))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pr := (pyy1 + 91881*pcr1) >> 8
@@ -472,7 +472,7 @@ func (nnInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Rec
pj := ((sr.Min.Y+int(sy))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pr := (pyy1 + 91881*pcr1) >> 8
@@ -759,7 +759,7 @@ func (nnInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image
pj := (sy0-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pr := (pyy1 + 91881*pcr1) >> 8
@@ -803,7 +803,7 @@ func (nnInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image
pj := (sy0-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pr := (pyy1 + 91881*pcr1) >> 8
@@ -847,7 +847,7 @@ func (nnInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image
pj := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pr := (pyy1 + 91881*pcr1) >> 8
@@ -891,7 +891,7 @@ func (nnInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image
pj := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pr := (pyy1 + 91881*pcr1) >> 8
@@ -1756,7 +1756,7 @@ func (ablInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Re
s00j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s00yy1 := int(src.Y[s00i]) * 0x10100
+ s00yy1 := int(src.Y[s00i]) * 0x10101
s00cb1 := int(src.Cb[s00j]) - 128
s00cr1 := int(src.Cr[s00j]) - 128
s00ru := (s00yy1 + 91881*s00cr1) >> 8
@@ -1785,7 +1785,7 @@ func (ablInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Re
s10j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s10yy1 := int(src.Y[s10i]) * 0x10100
+ s10yy1 := int(src.Y[s10i]) * 0x10101
s10cb1 := int(src.Cb[s10j]) - 128
s10cr1 := int(src.Cr[s10j]) - 128
s10ru := (s10yy1 + 91881*s10cr1) >> 8
@@ -1817,7 +1817,7 @@ func (ablInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Re
s01j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s01yy1 := int(src.Y[s01i]) * 0x10100
+ s01yy1 := int(src.Y[s01i]) * 0x10101
s01cb1 := int(src.Cb[s01j]) - 128
s01cr1 := int(src.Cr[s01j]) - 128
s01ru := (s01yy1 + 91881*s01cr1) >> 8
@@ -1846,7 +1846,7 @@ func (ablInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Re
s11j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s11yy1 := int(src.Y[s11i]) * 0x10100
+ s11yy1 := int(src.Y[s11i]) * 0x10101
s11cb1 := int(src.Cb[s11j]) - 128
s11cr1 := int(src.Cr[s11j]) - 128
s11ru := (s11yy1 + 91881*s11cr1) >> 8
@@ -1931,7 +1931,7 @@ func (ablInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Re
s00j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s00yy1 := int(src.Y[s00i]) * 0x10100
+ s00yy1 := int(src.Y[s00i]) * 0x10101
s00cb1 := int(src.Cb[s00j]) - 128
s00cr1 := int(src.Cr[s00j]) - 128
s00ru := (s00yy1 + 91881*s00cr1) >> 8
@@ -1960,7 +1960,7 @@ func (ablInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Re
s10j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s10yy1 := int(src.Y[s10i]) * 0x10100
+ s10yy1 := int(src.Y[s10i]) * 0x10101
s10cb1 := int(src.Cb[s10j]) - 128
s10cr1 := int(src.Cr[s10j]) - 128
s10ru := (s10yy1 + 91881*s10cr1) >> 8
@@ -1992,7 +1992,7 @@ func (ablInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Re
s01j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s01yy1 := int(src.Y[s01i]) * 0x10100
+ s01yy1 := int(src.Y[s01i]) * 0x10101
s01cb1 := int(src.Cb[s01j]) - 128
s01cr1 := int(src.Cr[s01j]) - 128
s01ru := (s01yy1 + 91881*s01cr1) >> 8
@@ -2021,7 +2021,7 @@ func (ablInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Re
s11j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s11yy1 := int(src.Y[s11i]) * 0x10100
+ s11yy1 := int(src.Y[s11i]) * 0x10101
s11cb1 := int(src.Cb[s11j]) - 128
s11cr1 := int(src.Cr[s11j]) - 128
s11ru := (s11yy1 + 91881*s11cr1) >> 8
@@ -2106,7 +2106,7 @@ func (ablInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Re
s00j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s00yy1 := int(src.Y[s00i]) * 0x10100
+ s00yy1 := int(src.Y[s00i]) * 0x10101
s00cb1 := int(src.Cb[s00j]) - 128
s00cr1 := int(src.Cr[s00j]) - 128
s00ru := (s00yy1 + 91881*s00cr1) >> 8
@@ -2135,7 +2135,7 @@ func (ablInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Re
s10j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s10yy1 := int(src.Y[s10i]) * 0x10100
+ s10yy1 := int(src.Y[s10i]) * 0x10101
s10cb1 := int(src.Cb[s10j]) - 128
s10cr1 := int(src.Cr[s10j]) - 128
s10ru := (s10yy1 + 91881*s10cr1) >> 8
@@ -2167,7 +2167,7 @@ func (ablInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Re
s01j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s01yy1 := int(src.Y[s01i]) * 0x10100
+ s01yy1 := int(src.Y[s01i]) * 0x10101
s01cb1 := int(src.Cb[s01j]) - 128
s01cr1 := int(src.Cr[s01j]) - 128
s01ru := (s01yy1 + 91881*s01cr1) >> 8
@@ -2196,7 +2196,7 @@ func (ablInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Re
s11j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s11yy1 := int(src.Y[s11i]) * 0x10100
+ s11yy1 := int(src.Y[s11i]) * 0x10101
s11cb1 := int(src.Cb[s11j]) - 128
s11cr1 := int(src.Cr[s11j]) - 128
s11ru := (s11yy1 + 91881*s11cr1) >> 8
@@ -2281,7 +2281,7 @@ func (ablInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Re
s00j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s00yy1 := int(src.Y[s00i]) * 0x10100
+ s00yy1 := int(src.Y[s00i]) * 0x10101
s00cb1 := int(src.Cb[s00j]) - 128
s00cr1 := int(src.Cr[s00j]) - 128
s00ru := (s00yy1 + 91881*s00cr1) >> 8
@@ -2310,7 +2310,7 @@ func (ablInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Re
s10j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s10yy1 := int(src.Y[s10i]) * 0x10100
+ s10yy1 := int(src.Y[s10i]) * 0x10101
s10cb1 := int(src.Cb[s10j]) - 128
s10cr1 := int(src.Cr[s10j]) - 128
s10ru := (s10yy1 + 91881*s10cr1) >> 8
@@ -2342,7 +2342,7 @@ func (ablInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Re
s01j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s01yy1 := int(src.Y[s01i]) * 0x10100
+ s01yy1 := int(src.Y[s01i]) * 0x10101
s01cb1 := int(src.Cb[s01j]) - 128
s01cr1 := int(src.Cr[s01j]) - 128
s01ru := (s01yy1 + 91881*s01cr1) >> 8
@@ -2371,7 +2371,7 @@ func (ablInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Re
s11j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s11yy1 := int(src.Y[s11i]) * 0x10100
+ s11yy1 := int(src.Y[s11i]) * 0x10101
s11cb1 := int(src.Cb[s11j]) - 128
s11cr1 := int(src.Cr[s11j]) - 128
s11ru := (s11yy1 + 91881*s11cr1) >> 8
@@ -3345,7 +3345,7 @@ func (ablInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr imag
s00j := (sy0-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s00yy1 := int(src.Y[s00i]) * 0x10100
+ s00yy1 := int(src.Y[s00i]) * 0x10101
s00cb1 := int(src.Cb[s00j]) - 128
s00cr1 := int(src.Cr[s00j]) - 128
s00ru := (s00yy1 + 91881*s00cr1) >> 8
@@ -3374,7 +3374,7 @@ func (ablInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr imag
s10j := (sy0-src.Rect.Min.Y)*src.CStride + (sx1 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s10yy1 := int(src.Y[s10i]) * 0x10100
+ s10yy1 := int(src.Y[s10i]) * 0x10101
s10cb1 := int(src.Cb[s10j]) - 128
s10cr1 := int(src.Cr[s10j]) - 128
s10ru := (s10yy1 + 91881*s10cr1) >> 8
@@ -3406,7 +3406,7 @@ func (ablInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr imag
s01j := (sy1-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s01yy1 := int(src.Y[s01i]) * 0x10100
+ s01yy1 := int(src.Y[s01i]) * 0x10101
s01cb1 := int(src.Cb[s01j]) - 128
s01cr1 := int(src.Cr[s01j]) - 128
s01ru := (s01yy1 + 91881*s01cr1) >> 8
@@ -3435,7 +3435,7 @@ func (ablInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr imag
s11j := (sy1-src.Rect.Min.Y)*src.CStride + (sx1 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s11yy1 := int(src.Y[s11i]) * 0x10100
+ s11yy1 := int(src.Y[s11i]) * 0x10101
s11cb1 := int(src.Cb[s11j]) - 128
s11cr1 := int(src.Cr[s11j]) - 128
s11ru := (s11yy1 + 91881*s11cr1) >> 8
@@ -3521,7 +3521,7 @@ func (ablInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr imag
s00j := (sy0-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s00yy1 := int(src.Y[s00i]) * 0x10100
+ s00yy1 := int(src.Y[s00i]) * 0x10101
s00cb1 := int(src.Cb[s00j]) - 128
s00cr1 := int(src.Cr[s00j]) - 128
s00ru := (s00yy1 + 91881*s00cr1) >> 8
@@ -3550,7 +3550,7 @@ func (ablInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr imag
s10j := (sy0-src.Rect.Min.Y)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s10yy1 := int(src.Y[s10i]) * 0x10100
+ s10yy1 := int(src.Y[s10i]) * 0x10101
s10cb1 := int(src.Cb[s10j]) - 128
s10cr1 := int(src.Cr[s10j]) - 128
s10ru := (s10yy1 + 91881*s10cr1) >> 8
@@ -3582,7 +3582,7 @@ func (ablInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr imag
s01j := (sy1-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s01yy1 := int(src.Y[s01i]) * 0x10100
+ s01yy1 := int(src.Y[s01i]) * 0x10101
s01cb1 := int(src.Cb[s01j]) - 128
s01cr1 := int(src.Cr[s01j]) - 128
s01ru := (s01yy1 + 91881*s01cr1) >> 8
@@ -3611,7 +3611,7 @@ func (ablInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr imag
s11j := (sy1-src.Rect.Min.Y)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s11yy1 := int(src.Y[s11i]) * 0x10100
+ s11yy1 := int(src.Y[s11i]) * 0x10101
s11cb1 := int(src.Cb[s11j]) - 128
s11cr1 := int(src.Cr[s11j]) - 128
s11ru := (s11yy1 + 91881*s11cr1) >> 8
@@ -3697,7 +3697,7 @@ func (ablInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr imag
s00j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s00yy1 := int(src.Y[s00i]) * 0x10100
+ s00yy1 := int(src.Y[s00i]) * 0x10101
s00cb1 := int(src.Cb[s00j]) - 128
s00cr1 := int(src.Cr[s00j]) - 128
s00ru := (s00yy1 + 91881*s00cr1) >> 8
@@ -3726,7 +3726,7 @@ func (ablInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr imag
s10j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s10yy1 := int(src.Y[s10i]) * 0x10100
+ s10yy1 := int(src.Y[s10i]) * 0x10101
s10cb1 := int(src.Cb[s10j]) - 128
s10cr1 := int(src.Cr[s10j]) - 128
s10ru := (s10yy1 + 91881*s10cr1) >> 8
@@ -3758,7 +3758,7 @@ func (ablInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr imag
s01j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s01yy1 := int(src.Y[s01i]) * 0x10100
+ s01yy1 := int(src.Y[s01i]) * 0x10101
s01cb1 := int(src.Cb[s01j]) - 128
s01cr1 := int(src.Cr[s01j]) - 128
s01ru := (s01yy1 + 91881*s01cr1) >> 8
@@ -3787,7 +3787,7 @@ func (ablInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr imag
s11j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s11yy1 := int(src.Y[s11i]) * 0x10100
+ s11yy1 := int(src.Y[s11i]) * 0x10101
s11cb1 := int(src.Cb[s11j]) - 128
s11cr1 := int(src.Cr[s11j]) - 128
s11ru := (s11yy1 + 91881*s11cr1) >> 8
@@ -3873,7 +3873,7 @@ func (ablInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr imag
s00j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s00yy1 := int(src.Y[s00i]) * 0x10100
+ s00yy1 := int(src.Y[s00i]) * 0x10101
s00cb1 := int(src.Cb[s00j]) - 128
s00cr1 := int(src.Cr[s00j]) - 128
s00ru := (s00yy1 + 91881*s00cr1) >> 8
@@ -3902,7 +3902,7 @@ func (ablInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr imag
s10j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx1 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s10yy1 := int(src.Y[s10i]) * 0x10100
+ s10yy1 := int(src.Y[s10i]) * 0x10101
s10cb1 := int(src.Cb[s10j]) - 128
s10cr1 := int(src.Cr[s10j]) - 128
s10ru := (s10yy1 + 91881*s10cr1) >> 8
@@ -3934,7 +3934,7 @@ func (ablInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr imag
s01j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s01yy1 := int(src.Y[s01i]) * 0x10100
+ s01yy1 := int(src.Y[s01i]) * 0x10101
s01cb1 := int(src.Cb[s01j]) - 128
s01cr1 := int(src.Cr[s01j]) - 128
s01ru := (s01yy1 + 91881*s01cr1) >> 8
@@ -3963,7 +3963,7 @@ func (ablInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr imag
s11j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + (sx1 - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- s11yy1 := int(src.Y[s11i]) * 0x10100
+ s11yy1 := int(src.Y[s11i]) * 0x10101
s11cb1 := int(src.Cb[s11j]) - 128
s11cr1 := int(src.Cr[s11j]) - 128
s11ru := (s11yy1 + 91881*s11cr1) >> 8
@@ -4729,7 +4729,7 @@ func (z *kernelScaler) scaleX_YCbCr444(tmp [][4]float64, src *image.YCbCr, sr im
pj := (sr.Min.Y+int(y)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(c.coord) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pru := (pyy1 + 91881*pcr1) >> 8
@@ -4776,7 +4776,7 @@ func (z *kernelScaler) scaleX_YCbCr422(tmp [][4]float64, src *image.YCbCr, sr im
pj := (sr.Min.Y+int(y)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(c.coord))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pru := (pyy1 + 91881*pcr1) >> 8
@@ -4823,7 +4823,7 @@ func (z *kernelScaler) scaleX_YCbCr420(tmp [][4]float64, src *image.YCbCr, sr im
pj := ((sr.Min.Y+int(y))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(c.coord))/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pru := (pyy1 + 91881*pcr1) >> 8
@@ -4870,7 +4870,7 @@ func (z *kernelScaler) scaleX_YCbCr440(tmp [][4]float64, src *image.YCbCr, sr im
pj := ((sr.Min.Y+int(y))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(c.coord) - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pru := (pyy1 + 91881*pcr1) >> 8
@@ -5759,7 +5759,7 @@ func (q *Kernel) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Rect
pj := (ky-src.Rect.Min.Y)*src.CStride + (kx - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pru := (pyy1 + 91881*pcr1) >> 8
@@ -5883,7 +5883,7 @@ func (q *Kernel) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Rect
pj := (ky-src.Rect.Min.Y)*src.CStride + ((kx)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pru := (pyy1 + 91881*pcr1) >> 8
@@ -6007,7 +6007,7 @@ func (q *Kernel) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Rect
pj := ((ky)/2-src.Rect.Min.Y/2)*src.CStride + ((kx)/2 - src.Rect.Min.X/2)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pru := (pyy1 + 91881*pcr1) >> 8
@@ -6131,7 +6131,7 @@ func (q *Kernel) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Rect
pj := ((ky)/2-src.Rect.Min.Y/2)*src.CStride + (kx - src.Rect.Min.X)
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
- pyy1 := int(src.Y[pi]) * 0x10100
+ pyy1 := int(src.Y[pi]) * 0x10101
pcb1 := int(src.Cb[pj]) - 128
pcr1 := int(src.Cr[pj]) - 128
pru := (pyy1 + 91881*pcr1) >> 8
diff --git a/vendor/golang.org/x/image/draw/stdlib_test.go b/vendor/golang.org/x/image/draw/stdlib_test.go
index c45f78c2e..9015bfd6f 100644
--- a/vendor/golang.org/x/image/draw/stdlib_test.go
+++ b/vendor/golang.org/x/image/draw/stdlib_test.go
@@ -2,14 +2,14 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build go1.5
+// +build go1.9
package draw
// This file contains tests that depend on the exact behavior of the
// image/color package in the standard library. The color conversion formula
-// from YCbCr to RGBA changed between Go 1.4 and Go 1.5, so this file's tests
-// are only enabled for Go 1.5 and above.
+// from YCbCr to RGBA changed between Go 1.4 and Go 1.5, and between Go 1.8 and
+// Go 1.9, so this file's tests are only enabled for Go 1.9 and above.
import (
"bytes"
diff --git a/vendor/golang.org/x/image/font/sfnt/cmap.go b/vendor/golang.org/x/image/font/sfnt/cmap.go
new file mode 100644
index 000000000..42338f1bc
--- /dev/null
+++ b/vendor/golang.org/x/image/font/sfnt/cmap.go
@@ -0,0 +1,269 @@
+// 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.
+
+package sfnt
+
+import (
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding/charmap"
+)
+
+// Platform IDs and Platform Specific IDs as per
+// https://www.microsoft.com/typography/otspec/name.htm
+const (
+ pidUnicode = 0
+ pidMacintosh = 1
+ pidWindows = 3
+
+ psidUnicode2BMPOnly = 3
+ psidUnicode2FullRepertoire = 4
+ // Note that FontForge may generate a bogus Platform Specific ID (value 10)
+ // for the Unicode Platform ID (value 0). See
+ // https://github.com/fontforge/fontforge/issues/2728
+
+ psidMacintoshRoman = 0
+
+ psidWindowsSymbol = 0
+ psidWindowsUCS2 = 1
+ psidWindowsUCS4 = 10
+)
+
+// platformEncodingWidth returns the number of bytes per character assumed by
+// the given Platform ID and Platform Specific ID.
+//
+// Very old fonts, from before Unicode was widely adopted, assume only 1 byte
+// per character: a character map.
+//
+// Old fonts, from when Unicode meant the Basic Multilingual Plane (BMP),
+// assume that 2 bytes per character is sufficient.
+//
+// Recent fonts naturally support the full range of Unicode code points, which
+// can take up to 4 bytes per character. Such fonts might still choose one of
+// the legacy encodings if e.g. their repertoire is limited to the BMP, for
+// greater compatibility with older software, or because the resultant file
+// size can be smaller.
+func platformEncodingWidth(pid, psid uint16) int {
+ switch pid {
+ case pidUnicode:
+ switch psid {
+ case psidUnicode2BMPOnly:
+ return 2
+ case psidUnicode2FullRepertoire:
+ return 4
+ }
+
+ case pidMacintosh:
+ switch psid {
+ case psidMacintoshRoman:
+ return 1
+ }
+
+ case pidWindows:
+ switch psid {
+ case psidWindowsSymbol:
+ return 2
+ case psidWindowsUCS2:
+ return 2
+ case psidWindowsUCS4:
+ return 4
+ }
+ }
+ return 0
+}
+
+// The various cmap formats are described at
+// https://www.microsoft.com/typography/otspec/cmap.htm
+
+var supportedCmapFormat = func(format, pid, psid uint16) bool {
+ switch format {
+ case 0:
+ return pid == pidMacintosh && psid == psidMacintoshRoman
+ case 4:
+ return true
+ case 12:
+ return true
+ }
+ return false
+}
+
+func (f *Font) makeCachedGlyphIndex(buf []byte, offset, length uint32, format uint16) ([]byte, glyphIndexFunc, error) {
+ switch format {
+ case 0:
+ return f.makeCachedGlyphIndexFormat0(buf, offset, length)
+ case 4:
+ return f.makeCachedGlyphIndexFormat4(buf, offset, length)
+ case 12:
+ return f.makeCachedGlyphIndexFormat12(buf, offset, length)
+ }
+ panic("unreachable")
+}
+
+func (f *Font) makeCachedGlyphIndexFormat0(buf []byte, offset, length uint32) ([]byte, glyphIndexFunc, error) {
+ if length != 6+256 || offset+length > f.cmap.length {
+ return nil, nil, errInvalidCmapTable
+ }
+ var err error
+ buf, err = f.src.view(buf, int(f.cmap.offset+offset), int(length))
+ if err != nil {
+ return nil, nil, err
+ }
+ var table [256]byte
+ copy(table[:], buf[6:])
+ return buf, func(f *Font, b *Buffer, r rune) (GlyphIndex, error) {
+ // TODO: for this closure to be goroutine-safe, the
+ // golang.org/x/text/encoding/charmap API needs to allocate a new
+ // Encoder and new []byte buffers, for every call to this closure, even
+ // though all we want to do is to encode one rune as one byte. We could
+ // possibly add some fields in the Buffer struct to re-use these
+ // allocations, but a better solution is to improve the charmap API.
+ var dst, src [utf8.UTFMax]byte
+ n := utf8.EncodeRune(src[:], r)
+ _, _, err = charmap.Macintosh.NewEncoder().Transform(dst[:], src[:n], true)
+ if err != nil {
+ // The source rune r is not representable in the Macintosh-Roman encoding.
+ return 0, nil
+ }
+ return GlyphIndex(table[dst[0]]), nil
+ }, nil
+}
+
+func (f *Font) makeCachedGlyphIndexFormat4(buf []byte, offset, length uint32) ([]byte, glyphIndexFunc, error) {
+ const headerSize = 14
+ if offset+headerSize > f.cmap.length {
+ return nil, nil, errInvalidCmapTable
+ }
+ var err error
+ buf, err = f.src.view(buf, int(f.cmap.offset+offset), headerSize)
+ if err != nil {
+ return nil, nil, err
+ }
+ offset += headerSize
+
+ segCount := u16(buf[6:])
+ if segCount&1 != 0 {
+ return nil, nil, errInvalidCmapTable
+ }
+ segCount /= 2
+ if segCount > maxCmapSegments {
+ return nil, nil, errUnsupportedNumberOfCmapSegments
+ }
+
+ eLength := 8*uint32(segCount) + 2
+ if offset+eLength > f.cmap.length {
+ return nil, nil, errInvalidCmapTable
+ }
+ buf, err = f.src.view(buf, int(f.cmap.offset+offset), int(eLength))
+ if err != nil {
+ return nil, nil, err
+ }
+ offset += eLength
+
+ entries := make([]cmapEntry16, segCount)
+ for i := range entries {
+ entries[i] = cmapEntry16{
+ end: u16(buf[0*len(entries)+0+2*i:]),
+ start: u16(buf[2*len(entries)+2+2*i:]),
+ delta: u16(buf[4*len(entries)+2+2*i:]),
+ offset: u16(buf[6*len(entries)+2+2*i:]),
+ }
+ }
+ indexesBase := f.cmap.offset + offset
+ indexesLength := f.cmap.length - offset
+
+ return buf, func(f *Font, b *Buffer, r rune) (GlyphIndex, error) {
+ if uint32(r) > 0xffff {
+ return 0, nil
+ }
+
+ c := uint16(r)
+ for i, j := 0, len(entries); i < j; {
+ h := i + (j-i)/2
+ entry := &entries[h]
+ if c < entry.start {
+ j = h
+ } else if entry.end < c {
+ i = h + 1
+ } else if entry.offset == 0 {
+ return GlyphIndex(c + entry.delta), nil
+ } else {
+ offset := uint32(entry.offset) + 2*uint32(h-len(entries)+int(c-entry.start))
+ if offset > indexesLength || offset+2 > indexesLength {
+ return 0, errInvalidCmapTable
+ }
+ x, err := b.view(&f.src, int(indexesBase+offset), 2)
+ if err != nil {
+ return 0, err
+ }
+ return GlyphIndex(u16(x)), nil
+ }
+ }
+ return 0, nil
+ }, nil
+}
+
+func (f *Font) makeCachedGlyphIndexFormat12(buf []byte, offset, _ uint32) ([]byte, glyphIndexFunc, error) {
+ const headerSize = 16
+ if offset+headerSize > f.cmap.length {
+ return nil, nil, errInvalidCmapTable
+ }
+ var err error
+ buf, err = f.src.view(buf, int(f.cmap.offset+offset), headerSize)
+ if err != nil {
+ return nil, nil, err
+ }
+ length := u32(buf[4:])
+ if f.cmap.length < offset || length > f.cmap.length-offset {
+ return nil, nil, errInvalidCmapTable
+ }
+ offset += headerSize
+
+ numGroups := u32(buf[12:])
+ if numGroups > maxCmapSegments {
+ return nil, nil, errUnsupportedNumberOfCmapSegments
+ }
+
+ eLength := 12 * numGroups
+ if headerSize+eLength != length {
+ return nil, nil, errInvalidCmapTable
+ }
+ buf, err = f.src.view(buf, int(f.cmap.offset+offset), int(eLength))
+ if err != nil {
+ return nil, nil, err
+ }
+ offset += eLength
+
+ entries := make([]cmapEntry32, numGroups)
+ for i := range entries {
+ entries[i] = cmapEntry32{
+ start: u32(buf[0+12*i:]),
+ end: u32(buf[4+12*i:]),
+ delta: u32(buf[8+12*i:]),
+ }
+ }
+
+ return buf, func(f *Font, b *Buffer, r rune) (GlyphIndex, error) {
+ c := uint32(r)
+ for i, j := 0, len(entries); i < j; {
+ h := i + (j-i)/2
+ entry := &entries[h]
+ if c < entry.start {
+ j = h
+ } else if entry.end < c {
+ i = h + 1
+ } else {
+ return GlyphIndex(c - entry.start + entry.delta), nil
+ }
+ }
+ return 0, nil
+ }, nil
+}
+
+type cmapEntry16 struct {
+ end, start, delta, offset uint16
+}
+
+type cmapEntry32 struct {
+ start, end, delta uint32
+}
diff --git a/vendor/golang.org/x/image/font/sfnt/data.go b/vendor/golang.org/x/image/font/sfnt/data.go
new file mode 100644
index 000000000..ad0c139aa
--- /dev/null
+++ b/vendor/golang.org/x/image/font/sfnt/data.go
@@ -0,0 +1,68 @@
+// generated by go run gen.go; DO NOT EDIT
+
+package sfnt
+
+const numBuiltInPostNames = 258
+
+const builtInPostNamesData = "" +
+ ".notdef.nullnonmarkingreturnspaceexclamquotedblnumbersigndollarp" +
+ "ercentampersandquotesingleparenleftparenrightasteriskpluscommahy" +
+ "phenperiodslashzeroonetwothreefourfivesixseveneightninecolonsemi" +
+ "colonlessequalgreaterquestionatABCDEFGHIJKLMNOPQRSTUVWXYZbracket" +
+ "leftbackslashbracketrightasciicircumunderscoregraveabcdefghijklm" +
+ "nopqrstuvwxyzbraceleftbarbracerightasciitildeAdieresisAringCcedi" +
+ "llaEacuteNtildeOdieresisUdieresisaacuteagraveacircumflexadieresi" +
+ "satildearingccedillaeacuteegraveecircumflexedieresisiacuteigrave" +
+ "icircumflexidieresisntildeoacuteograveocircumflexodieresisotilde" +
+ "uacuteugraveucircumflexudieresisdaggerdegreecentsterlingsectionb" +
+ "ulletparagraphgermandblsregisteredcopyrighttrademarkacutedieresi" +
+ "snotequalAEOslashinfinityplusminuslessequalgreaterequalyenmupart" +
+ "ialdiffsummationproductpiintegralordfeminineordmasculineOmegaaeo" +
+ "slashquestiondownexclamdownlogicalnotradicalflorinapproxequalDel" +
+ "taguillemotleftguillemotrightellipsisnonbreakingspaceAgraveAtild" +
+ "eOtildeOEoeendashemdashquotedblleftquotedblrightquoteleftquoteri" +
+ "ghtdividelozengeydieresisYdieresisfractioncurrencyguilsinglleftg" +
+ "uilsinglrightfifldaggerdblperiodcenteredquotesinglbasequotedblba" +
+ "seperthousandAcircumflexEcircumflexAacuteEdieresisEgraveIacuteIc" +
+ "ircumflexIdieresisIgraveOacuteOcircumflexappleOgraveUacuteUcircu" +
+ "mflexUgravedotlessicircumflextildemacronbrevedotaccentringcedill" +
+ "ahungarumlautogonekcaronLslashlslashScaronscaronZcaronzcaronbrok" +
+ "enbarEthethYacuteyacuteThornthornminusmultiplyonesuperiortwosupe" +
+ "riorthreesuperioronehalfonequarterthreequartersfrancGbrevegbreve" +
+ "IdotaccentScedillascedillaCacutecacuteCcaronccarondcroat"
+
+var builtInPostNamesOffsets = [...]uint16{
+ 0x0000, 0x0007, 0x000c, 0x001c, 0x0021, 0x0027, 0x002f, 0x0039,
+ 0x003f, 0x0046, 0x004f, 0x005a, 0x0063, 0x006d, 0x0075, 0x0079,
+ 0x007e, 0x0084, 0x008a, 0x008f, 0x0093, 0x0096, 0x0099, 0x009e,
+ 0x00a2, 0x00a6, 0x00a9, 0x00ae, 0x00b3, 0x00b7, 0x00bc, 0x00c5,
+ 0x00c9, 0x00ce, 0x00d5, 0x00dd, 0x00df, 0x00e0, 0x00e1, 0x00e2,
+ 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea,
+ 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2,
+ 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x0104,
+ 0x010d, 0x0119, 0x0124, 0x012e, 0x0133, 0x0134, 0x0135, 0x0136,
+ 0x0137, 0x0138, 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x013e,
+ 0x013f, 0x0140, 0x0141, 0x0142, 0x0143, 0x0144, 0x0145, 0x0146,
+ 0x0147, 0x0148, 0x0149, 0x014a, 0x014b, 0x014c, 0x014d, 0x0156,
+ 0x0159, 0x0163, 0x016d, 0x0176, 0x017b, 0x0183, 0x0189, 0x018f,
+ 0x0198, 0x01a1, 0x01a7, 0x01ad, 0x01b8, 0x01c1, 0x01c7, 0x01cc,
+ 0x01d4, 0x01da, 0x01e0, 0x01eb, 0x01f4, 0x01fa, 0x0200, 0x020b,
+ 0x0214, 0x021a, 0x0220, 0x0226, 0x0231, 0x023a, 0x0240, 0x0246,
+ 0x024c, 0x0257, 0x0260, 0x0266, 0x026c, 0x0270, 0x0278, 0x027f,
+ 0x0285, 0x028e, 0x0298, 0x02a2, 0x02ab, 0x02b4, 0x02b9, 0x02c1,
+ 0x02c9, 0x02cb, 0x02d1, 0x02d9, 0x02e2, 0x02eb, 0x02f7, 0x02fa,
+ 0x02fc, 0x0307, 0x0310, 0x0317, 0x0319, 0x0321, 0x032c, 0x0338,
+ 0x033d, 0x033f, 0x0345, 0x0351, 0x035b, 0x0365, 0x036c, 0x0372,
+ 0x037d, 0x0382, 0x038f, 0x039d, 0x03a5, 0x03b5, 0x03bb, 0x03c1,
+ 0x03c7, 0x03c9, 0x03cb, 0x03d1, 0x03d7, 0x03e3, 0x03f0, 0x03f9,
+ 0x0403, 0x0409, 0x0410, 0x0419, 0x0422, 0x042a, 0x0432, 0x043f,
+ 0x044d, 0x044f, 0x0451, 0x045a, 0x0468, 0x0476, 0x0482, 0x048d,
+ 0x0498, 0x04a3, 0x04a9, 0x04b2, 0x04b8, 0x04be, 0x04c9, 0x04d2,
+ 0x04d8, 0x04de, 0x04e9, 0x04ee, 0x04f4, 0x04fa, 0x0505, 0x050b,
+ 0x0513, 0x051d, 0x0522, 0x0528, 0x052d, 0x0536, 0x053a, 0x0541,
+ 0x054d, 0x0553, 0x0558, 0x055e, 0x0564, 0x056a, 0x0570, 0x0576,
+ 0x057c, 0x0585, 0x0588, 0x058b, 0x0591, 0x0597, 0x059c, 0x05a1,
+ 0x05a6, 0x05ae, 0x05b9, 0x05c4, 0x05d1, 0x05d8, 0x05e2, 0x05ef,
+ 0x05f4, 0x05fa, 0x0600, 0x060a, 0x0612, 0x061a, 0x0620, 0x0626,
+ 0x062c, 0x0632, 0x0638,
+}
diff --git a/vendor/golang.org/x/image/font/sfnt/example_test.go b/vendor/golang.org/x/image/font/sfnt/example_test.go
new file mode 100644
index 000000000..17431560f
--- /dev/null
+++ b/vendor/golang.org/x/image/font/sfnt/example_test.go
@@ -0,0 +1,128 @@
+// 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.
+
+package sfnt_test
+
+import (
+ "image"
+ "image/draw"
+ "log"
+ "os"
+
+ "golang.org/x/image/font/gofont/goregular"
+ "golang.org/x/image/font/sfnt"
+ "golang.org/x/image/math/fixed"
+ "golang.org/x/image/vector"
+)
+
+func ExampleRasterizeGlyph() {
+ const (
+ ppem = 32
+ width = 24
+ height = 32
+ originX = 0
+ originY = 28
+ )
+
+ f, err := sfnt.Parse(goregular.TTF)
+ if err != nil {
+ log.Fatalf("Parse: %v", err)
+ }
+ var b sfnt.Buffer
+ x, err := f.GlyphIndex(&b, 'G')
+ if err != nil {
+ log.Fatalf("GlyphIndex: %v", err)
+ }
+ if x == 0 {
+ log.Fatalf("GlyphIndex: no glyph index found for the rune 'G'")
+ }
+ segments, err := f.LoadGlyph(&b, x, fixed.I(ppem), nil)
+ if err != nil {
+ log.Fatalf("LoadGlyph: %v", err)
+ }
+
+ r := vector.NewRasterizer(width, height)
+ r.DrawOp = draw.Src
+ for _, seg := range segments {
+ // The divisions by 64 below is because the seg.Args values have type
+ // fixed.Int26_6, a 26.6 fixed point number, and 1<<6 == 64.
+ switch seg.Op {
+ case sfnt.SegmentOpMoveTo:
+ r.MoveTo(
+ originX+float32(seg.Args[0])/64,
+ originY-float32(seg.Args[1])/64,
+ )
+ case sfnt.SegmentOpLineTo:
+ r.LineTo(
+ originX+float32(seg.Args[0])/64,
+ originY-float32(seg.Args[1])/64,
+ )
+ case sfnt.SegmentOpQuadTo:
+ r.QuadTo(
+ originX+float32(seg.Args[0])/64,
+ originY-float32(seg.Args[1])/64,
+ originX+float32(seg.Args[2])/64,
+ originY-float32(seg.Args[3])/64,
+ )
+ case sfnt.SegmentOpCubeTo:
+ r.CubeTo(
+ originX+float32(seg.Args[0])/64,
+ originY-float32(seg.Args[1])/64,
+ originX+float32(seg.Args[2])/64,
+ originY-float32(seg.Args[3])/64,
+ originX+float32(seg.Args[4])/64,
+ originY-float32(seg.Args[5])/64,
+ )
+ }
+ }
+ // TODO: call ClosePath? Once overall or once per contour (i.e. MoveTo)?
+
+ dst := image.NewAlpha(image.Rect(0, 0, width, height))
+ r.Draw(dst, dst.Bounds(), image.Opaque, image.Point{})
+
+ const asciiArt = ".++8"
+ buf := make([]byte, 0, height*(width+1))
+ for y := 0; y < height; y++ {
+ for x := 0; x < width; x++ {
+ a := dst.AlphaAt(x, y).A
+ buf = append(buf, asciiArt[a>>6])
+ }
+ buf = append(buf, '\n')
+ }
+ os.Stdout.Write(buf)
+
+ // Output:
+ // ........................
+ // ........................
+ // ........................
+ // ........................
+ // ..........+++++++++.....
+ // .......+8888888888888+..
+ // ......8888888888888888..
+ // ....+8888+........++88..
+ // ....8888................
+ // ...8888.................
+ // ..+888+.................
+ // ..+888..................
+ // ..888+..................
+ // .+888+..................
+ // .+888...................
+ // .+888...................
+ // .+888...................
+ // .+888..........+++++++..
+ // .+888..........8888888..
+ // .+888+.........+++8888..
+ // ..888+............+888..
+ // ..8888............+888..
+ // ..+888+...........+888..
+ // ...8888+..........+888..
+ // ...+8888+.........+888..
+ // ....+88888+.......+888..
+ // .....+8888888888888888..
+ // .......+888888888888++..
+ // ..........++++++++......
+ // ........................
+ // ........................
+ // ........................
+}
diff --git a/vendor/golang.org/x/image/font/sfnt/gen.go b/vendor/golang.org/x/image/font/sfnt/gen.go
new file mode 100644
index 000000000..12587d446
--- /dev/null
+++ b/vendor/golang.org/x/image/font/sfnt/gen.go
@@ -0,0 +1,321 @@
+// 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.
+
+// +build ignore
+
+package main
+
+import (
+ "bytes"
+ "fmt"
+ "go/format"
+ "io/ioutil"
+ "log"
+)
+
+func main() {
+ data, offsets := []byte(nil), []int{0}
+ for _, name := range names {
+ data = append(data, name...)
+ offsets = append(offsets, len(data))
+ }
+
+ b := new(bytes.Buffer)
+ fmt.Fprintf(b, "// generated by go run gen.go; DO NOT EDIT\n\n")
+ fmt.Fprintf(b, "package sfnt\n\n")
+
+ fmt.Fprintf(b, "const numBuiltInPostNames = %d\n\n", len(names))
+
+ fmt.Fprintf(b, "const builtInPostNamesData = \"\" +\n")
+ for s := data; ; {
+ if len(s) <= 64 {
+ fmt.Fprintf(b, "%q\n", s)
+ break
+ }
+ fmt.Fprintf(b, "%q +\n", s[:64])
+ s = s[64:]
+ }
+ fmt.Fprintf(b, "\n")
+
+ fmt.Fprintf(b, "var builtInPostNamesOffsets = [...]uint16{\n")
+ for i, o := range offsets {
+ fmt.Fprintf(b, "%#04x,", o)
+ if i%8 == 7 {
+ fmt.Fprintf(b, "\n")
+ }
+ }
+ fmt.Fprintf(b, "\n}\n")
+
+ dstUnformatted := b.Bytes()
+ dst, err := format.Source(dstUnformatted)
+ if err != nil {
+ log.Fatalf("format.Source: %v\n\n----\n%s\n----", err, dstUnformatted)
+ }
+ if err := ioutil.WriteFile("data.go", dst, 0666); err != nil {
+ log.Fatalf("ioutil.WriteFile: %v", err)
+ }
+}
+
+// names is the built-in post table names listed at
+// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6post.html
+var names = [258]string{
+ ".notdef",
+ ".null",
+ "nonmarkingreturn",
+ "space",
+ "exclam",
+ "quotedbl",
+ "numbersign",
+ "dollar",
+ "percent",
+ "ampersand",
+ "quotesingle",
+ "parenleft",
+ "parenright",
+ "asterisk",
+ "plus",
+ "comma",
+ "hyphen",
+ "period",
+ "slash",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "four",
+ "five",
+ "six",
+ "seven",
+ "eight",
+ "nine",
+ "colon",
+ "semicolon",
+ "less",
+ "equal",
+ "greater",
+ "question",
+ "at",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "bracketleft",
+ "backslash",
+ "bracketright",
+ "asciicircum",
+ "underscore",
+ "grave",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "braceleft",
+ "bar",
+ "braceright",
+ "asciitilde",
+ "Adieresis",
+ "Aring",
+ "Ccedilla",
+ "Eacute",
+ "Ntilde",
+ "Odieresis",
+ "Udieresis",
+ "aacute",
+ "agrave",
+ "acircumflex",
+ "adieresis",
+ "atilde",
+ "aring",
+ "ccedilla",
+ "eacute",
+ "egrave",
+ "ecircumflex",
+ "edieresis",
+ "iacute",
+ "igrave",
+ "icircumflex",
+ "idieresis",
+ "ntilde",
+ "oacute",
+ "ograve",
+ "ocircumflex",
+ "odieresis",
+ "otilde",
+ "uacute",
+ "ugrave",
+ "ucircumflex",
+ "udieresis",
+ "dagger",
+ "degree",
+ "cent",
+ "sterling",
+ "section",
+ "bullet",
+ "paragraph",
+ "germandbls",
+ "registered",
+ "copyright",
+ "trademark",
+ "acute",
+ "dieresis",
+ "notequal",
+ "AE",
+ "Oslash",
+ "infinity",
+ "plusminus",
+ "lessequal",
+ "greaterequal",
+ "yen",
+ "mu",
+ "partialdiff",
+ "summation",
+ "product",
+ "pi",
+ "integral",
+ "ordfeminine",
+ "ordmasculine",
+ "Omega",
+ "ae",
+ "oslash",
+ "questiondown",
+ "exclamdown",
+ "logicalnot",
+ "radical",
+ "florin",
+ "approxequal",
+ "Delta",
+ "guillemotleft",
+ "guillemotright",
+ "ellipsis",
+ "nonbreakingspace",
+ "Agrave",
+ "Atilde",
+ "Otilde",
+ "OE",
+ "oe",
+ "endash",
+ "emdash",
+ "quotedblleft",
+ "quotedblright",
+ "quoteleft",
+ "quoteright",
+ "divide",
+ "lozenge",
+ "ydieresis",
+ "Ydieresis",
+ "fraction",
+ "currency",
+ "guilsinglleft",
+ "guilsinglright",
+ "fi",
+ "fl",
+ "daggerdbl",
+ "periodcentered",
+ "quotesinglbase",
+ "quotedblbase",
+ "perthousand",
+ "Acircumflex",
+ "Ecircumflex",
+ "Aacute",
+ "Edieresis",
+ "Egrave",
+ "Iacute",
+ "Icircumflex",
+ "Idieresis",
+ "Igrave",
+ "Oacute",
+ "Ocircumflex",
+ "apple",
+ "Ograve",
+ "Uacute",
+ "Ucircumflex",
+ "Ugrave",
+ "dotlessi",
+ "circumflex",
+ "tilde",
+ "macron",
+ "breve",
+ "dotaccent",
+ "ring",
+ "cedilla",
+ "hungarumlaut",
+ "ogonek",
+ "caron",
+ "Lslash",
+ "lslash",
+ "Scaron",
+ "scaron",
+ "Zcaron",
+ "zcaron",
+ "brokenbar",
+ "Eth",
+ "eth",
+ "Yacute",
+ "yacute",
+ "Thorn",
+ "thorn",
+ "minus",
+ "multiply",
+ "onesuperior",
+ "twosuperior",
+ "threesuperior",
+ "onehalf",
+ "onequarter",
+ "threequarters",
+ "franc",
+ "Gbreve",
+ "gbreve",
+ "Idotaccent",
+ "Scedilla",
+ "scedilla",
+ "Cacute",
+ "cacute",
+ "Ccaron",
+ "ccaron",
+ "dcroat",
+}
diff --git a/vendor/golang.org/x/image/font/sfnt/postscript.go b/vendor/golang.org/x/image/font/sfnt/postscript.go
index d5d6d9aed..ca1b8318c 100644
--- a/vendor/golang.org/x/image/font/sfnt/postscript.go
+++ b/vendor/golang.org/x/image/font/sfnt/postscript.go
@@ -566,8 +566,8 @@ var psOperators = [...][2][]psOperator{
23: {-1, "vstemhm", t2CStem},
24: {}, // rcurveline.
25: {}, // rlinecurve.
- 26: {}, // vvcurveto.
- 27: {}, // hhcurveto.
+ 26: {-1, "vvcurveto", t2CVvcurveto},
+ 27: {-1, "hhcurveto", t2CHhcurveto},
28: {}, // shortint.
29: {}, // callgsubr.
30: {-1, "vhcurveto", t2CVhcurveto},
@@ -653,8 +653,8 @@ func t2CAppendMoveto(p *psInterpreter) {
p.type2Charstrings.segments = append(p.type2Charstrings.segments, Segment{
Op: SegmentOpMoveTo,
Args: [6]fixed.Int26_6{
- 0: fixed.Int26_6(p.type2Charstrings.x) << 6,
- 1: fixed.Int26_6(p.type2Charstrings.y) << 6,
+ 0: fixed.Int26_6(p.type2Charstrings.x),
+ 1: fixed.Int26_6(p.type2Charstrings.y),
},
})
}
@@ -663,8 +663,8 @@ func t2CAppendLineto(p *psInterpreter) {
p.type2Charstrings.segments = append(p.type2Charstrings.segments, Segment{
Op: SegmentOpLineTo,
Args: [6]fixed.Int26_6{
- 0: fixed.Int26_6(p.type2Charstrings.x) << 6,
- 1: fixed.Int26_6(p.type2Charstrings.y) << 6,
+ 0: fixed.Int26_6(p.type2Charstrings.x),
+ 1: fixed.Int26_6(p.type2Charstrings.y),
},
})
}
@@ -685,12 +685,12 @@ func t2CAppendCubeto(p *psInterpreter, dxa, dya, dxb, dyb, dxc, dyc int32) {
p.type2Charstrings.segments = append(p.type2Charstrings.segments, Segment{
Op: SegmentOpCubeTo,
Args: [6]fixed.Int26_6{
- 0: fixed.Int26_6(xa) << 6,
- 1: fixed.Int26_6(ya) << 6,
- 2: fixed.Int26_6(xb) << 6,
- 3: fixed.Int26_6(yb) << 6,
- 4: fixed.Int26_6(xc) << 6,
- 5: fixed.Int26_6(yc) << 6,
+ 0: fixed.Int26_6(xa),
+ 1: fixed.Int26_6(ya),
+ 2: fixed.Int26_6(xb),
+ 3: fixed.Int26_6(yb),
+ 4: fixed.Int26_6(xc),
+ 5: fixed.Int26_6(yc),
},
})
}
@@ -770,6 +770,12 @@ func t2CRlineto(p *psInterpreter) error {
// As per 5177.Type2.pdf section 4.1 "Path Construction Operators",
//
+// hhcurveto is:
+// - dy1 {dxa dxb dyb dxc}+
+//
+// vvcurveto is:
+// - dx1 {dya dxb dyb dyc}+
+//
// hvcurveto is one of:
// - dx1 dx2 dy2 dy3 {dya dxb dyb dxc dxd dxe dye dyf}* dxf?
// - {dxa dxb dyb dyc dyd dxe dye dxf}+ dyf?
@@ -778,59 +784,84 @@ func t2CRlineto(p *psInterpreter) error {
// - dy1 dx2 dy2 dx3 {dxa dxb dyb dyc dyd dxe dye dxf}* dyf?
// - {dya dxb dyb dxc dxd dxe dye dyf}+ dxf?
-func t2CHvcurveto(p *psInterpreter) error { return t2CCurveto(p, false) }
-func t2CVhcurveto(p *psInterpreter) error { return t2CCurveto(p, true) }
+func t2CHhcurveto(p *psInterpreter) error { return t2CCurveto(p, false, false) }
+func t2CVvcurveto(p *psInterpreter) error { return t2CCurveto(p, false, true) }
+func t2CHvcurveto(p *psInterpreter) error { return t2CCurveto(p, true, false) }
+func t2CVhcurveto(p *psInterpreter) error { return t2CCurveto(p, true, true) }
-func t2CCurveto(p *psInterpreter, vertical bool) error {
+// t2CCurveto implements the hh / vv / hv / vh xxcurveto operators. N relative
+// cubic curve requires 6*N control points, but only 4*N+0 or 4*N+1 are used
+// here: all (or all but one) of the piecewise cubic curve's tangents are
+// implicitly horizontal or vertical.
+//
+// swap is whether that implicit horizontal / vertical constraint swaps as you
+// move along the piecewise cubic curve. If swap is false, the constraints are
+// either all horizontal or all vertical. If swap is true, it alternates.
+//
+// vertical is whether the first implicit constraint is vertical.
+func t2CCurveto(p *psInterpreter, swap, vertical bool) error {
if !p.type2Charstrings.seenWidth || p.stack.top < 4 {
return errInvalidCFFTable
}
- for i := int32(0); i != p.stack.top; vertical = !vertical {
+
+ i := int32(0)
+ switch p.stack.top & 3 {
+ case 0:
+ // No-op.
+ case 1:
+ if swap {
+ break
+ }
+ i = 1
if vertical {
- i = t2CVcurveto(p, i)
+ p.type2Charstrings.x += p.stack.a[0]
} else {
- i = t2CHcurveto(p, i)
+ p.type2Charstrings.y += p.stack.a[0]
}
+ default:
+ return errInvalidCFFTable
+ }
+
+ for i != p.stack.top {
+ i = t2CCurveto4(p, swap, vertical, i)
if i < 0 {
return errInvalidCFFTable
}
+ if swap {
+ vertical = !vertical
+ }
}
return nil
}
-func t2CHcurveto(p *psInterpreter, i int32) (j int32) {
+func t2CCurveto4(p *psInterpreter, swap bool, vertical bool, i int32) (j int32) {
if i+4 > p.stack.top {
return -1
}
dxa := p.stack.a[i+0]
+ dya := int32(0)
dxb := p.stack.a[i+1]
dyb := p.stack.a[i+2]
- dyc := p.stack.a[i+3]
- dxc := int32(0)
+ dxc := p.stack.a[i+3]
+ dyc := int32(0)
i += 4
- if i+1 == p.stack.top {
- dxc = p.stack.a[i]
- i++
+
+ if vertical {
+ dxa, dya = dya, dxa
}
- t2CAppendCubeto(p, dxa, 0, dxb, dyb, dxc, dyc)
- return i
-}
-func t2CVcurveto(p *psInterpreter, i int32) (j int32) {
- if i+4 > p.stack.top {
- return -1
+ if swap {
+ if i+1 == p.stack.top {
+ dyc = p.stack.a[i]
+ i++
+ }
}
- dya := p.stack.a[i+0]
- dxb := p.stack.a[i+1]
- dyb := p.stack.a[i+2]
- dxc := p.stack.a[i+3]
- dyc := int32(0)
- i += 4
- if i+1 == p.stack.top {
- dyc = p.stack.a[i]
- i++
+
+ if swap != vertical {
+ dxc, dyc = dyc, dxc
}
- t2CAppendCubeto(p, 0, dya, dxb, dyb, dxc, dyc)
+
+ t2CAppendCubeto(p, dxa, dya, dxb, dyb, dxc, dyc)
return i
}
diff --git a/vendor/golang.org/x/image/font/sfnt/proprietary_test.go b/vendor/golang.org/x/image/font/sfnt/proprietary_test.go
new file mode 100644
index 000000000..b105ee593
--- /dev/null
+++ b/vendor/golang.org/x/image/font/sfnt/proprietary_test.go
@@ -0,0 +1,479 @@
+// 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.
+
+package sfnt
+
+/*
+This file contains opt-in tests for popular, high quality, proprietary fonts,
+made by companies such as Adobe and Microsoft. These fonts are generally
+available, but copies are not explicitly included in this repository due to
+licensing differences or file size concerns. To opt-in, run:
+
+go test golang.org/x/image/font/sfnt -args -proprietary
+
+Not all tests pass out-of-the-box on all systems. For example, the Microsoft
+Times New Roman font is downloadable gratis even on non-Windows systems, but as
+per the ttf-mscorefonts-installer Debian package, this requires accepting an
+End User License Agreement (EULA) and a CAB format decoder. These tests assume
+that such fonts have already been installed. You may need to specify the
+directories for these fonts:
+
+go test golang.org/x/image/font/sfnt -args -proprietary -adobeDir=/foo/bar/aFonts -microsoftDir=/foo/bar/mFonts
+
+To only run those tests for the Microsoft fonts:
+
+go test golang.org/x/image/font/sfnt -test.run=ProprietaryMicrosoft -args -proprietary
+*/
+
+// TODO: add Apple system fonts? Google fonts (Droid? Noto?)? Emoji fonts?
+
+// TODO: enable Apple/Microsoft tests by default on Darwin/Windows?
+
+import (
+ "errors"
+ "flag"
+ "io/ioutil"
+ "path/filepath"
+ "testing"
+
+ "golang.org/x/image/font"
+ "golang.org/x/image/math/fixed"
+)
+
+var (
+ proprietary = flag.Bool("proprietary", false, "test proprietary fonts not included in this repository")
+
+ adobeDir = flag.String(
+ "adobeDir",
+ // This needs to be set explicitly. There is no default dir on Debian:
+ // https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=736680
+ //
+ // Get the fonts from https://github.com/adobe-fonts, e.g.:
+ // - https://github.com/adobe-fonts/source-code-pro/releases/latest
+ // - https://github.com/adobe-fonts/source-han-sans/releases/latest
+ // - https://github.com/adobe-fonts/source-sans-pro/releases/latest
+ //
+ // Copy all of the TTF and OTF files to the one directory, such as
+ // $HOME/adobe-fonts, and pass that as the -adobeDir flag here.
+ "",
+ "directory name for the Adobe proprietary fonts",
+ )
+
+ microsoftDir = flag.String(
+ "microsoftDir",
+ "/usr/share/fonts/truetype/msttcorefonts",
+ "directory name for the Microsoft proprietary fonts",
+ )
+)
+
+func TestProprietaryAdobeSourceCodeProOTF(t *testing.T) {
+ testProprietary(t, "adobe", "SourceCodePro-Regular.otf", 1500, 2)
+}
+
+func TestProprietaryAdobeSourceCodeProTTF(t *testing.T) {
+ testProprietary(t, "adobe", "SourceCodePro-Regular.ttf", 1500, 36)
+}
+
+func TestProprietaryAdobeSourceHanSansSC(t *testing.T) {
+ testProprietary(t, "adobe", "SourceHanSansSC-Regular.otf", 65535, 2)
+}
+
+func TestProprietaryAdobeSourceSansProOTF(t *testing.T) {
+ testProprietary(t, "adobe", "SourceSansPro-Regular.otf", 1800, 2)
+}
+
+func TestProprietaryAdobeSourceSansProTTF(t *testing.T) {
+ testProprietary(t, "adobe", "SourceSansPro-Regular.ttf", 1800, 54)
+}
+
+func TestProprietaryMicrosoftArial(t *testing.T) {
+ testProprietary(t, "microsoft", "Arial.ttf", 1200, 98)
+}
+
+func TestProprietaryMicrosoftComicSansMS(t *testing.T) {
+ testProprietary(t, "microsoft", "Comic_Sans_MS.ttf", 550, 98)
+}
+
+func TestProprietaryMicrosoftTimesNewRoman(t *testing.T) {
+ testProprietary(t, "microsoft", "Times_New_Roman.ttf", 1200, 98)
+}
+
+func TestProprietaryMicrosoftWebdings(t *testing.T) {
+ testProprietary(t, "microsoft", "Webdings.ttf", 200, -1)
+}
+
+// testProprietary tests that we can load every glyph in the named font.
+//
+// The exact number of glyphs in the font can differ across its various
+// versions, but as a sanity check, there should be at least minNumGlyphs.
+//
+// While this package is a work-in-progress, not every glyph can be loaded. The
+// firstUnsupportedGlyph argument, if non-negative, is the index of the first
+// unsupported glyph in the font. This number should increase over time (or set
+// negative), as the TODO's in this package are done.
+func testProprietary(t *testing.T, proprietor, filename string, minNumGlyphs, firstUnsupportedGlyph int) {
+ if !*proprietary {
+ t.Skip("skipping proprietary font test")
+ }
+
+ file, err := []byte(nil), error(nil)
+ switch proprietor {
+ case "adobe":
+ file, err = ioutil.ReadFile(filepath.Join(*adobeDir, filename))
+ if err != nil {
+ t.Fatalf("%v\nPerhaps you need to set the -adobeDir=%v flag?", err, *adobeDir)
+ }
+ case "microsoft":
+ file, err = ioutil.ReadFile(filepath.Join(*microsoftDir, filename))
+ if err != nil {
+ t.Fatalf("%v\nPerhaps you need to set the -microsoftDir=%v flag?", err, *microsoftDir)
+ }
+ default:
+ panic("unreachable")
+ }
+ f, err := Parse(file)
+ if err != nil {
+ t.Fatalf("Parse: %v", err)
+ }
+ ppem := fixed.Int26_6(f.UnitsPerEm())
+ qualifiedFilename := proprietor + "/" + filename
+ var buf Buffer
+
+ // Some of the tests below, such as which glyph index a particular rune
+ // maps to, can depend on the specific version of the proprietary font. If
+ // tested against a different version of that font, the test might (but not
+ // necessarily will) fail, even though the Go code is good. If so, log a
+ // message, but don't automatically fail (i.e. dont' call t.Fatalf).
+ gotVersion, err := f.Name(&buf, NameIDVersion)
+ if err != nil {
+ t.Fatalf("Name: %v", err)
+ }
+ wantVersion := proprietaryVersions[qualifiedFilename]
+ if gotVersion != wantVersion {
+ t.Logf("font version provided differs from the one the tests were written against:"+
+ "\ngot %q\nwant %q", gotVersion, wantVersion)
+ }
+
+ numGlyphs := f.NumGlyphs()
+ if numGlyphs < minNumGlyphs {
+ t.Fatalf("NumGlyphs: got %d, want at least %d", numGlyphs, minNumGlyphs)
+ }
+
+ iMax := numGlyphs
+ if firstUnsupportedGlyph >= 0 {
+ iMax = firstUnsupportedGlyph
+ }
+ for i, numErrors := 0, 0; i < iMax; i++ {
+ if _, err := f.LoadGlyph(&buf, GlyphIndex(i), ppem, nil); err != nil {
+ t.Errorf("LoadGlyph(%d): %v", i, err)
+ numErrors++
+ }
+ if numErrors == 10 {
+ t.Fatal("LoadGlyph: too many errors")
+ }
+ }
+
+ for r, want := range proprietaryGlyphIndexTestCases[qualifiedFilename] {
+ got, err := f.GlyphIndex(&buf, r)
+ if err != nil {
+ t.Errorf("GlyphIndex(%q): %v", r, err)
+ continue
+ }
+ if got != want {
+ t.Errorf("GlyphIndex(%q): got %d, want %d", r, got, want)
+ continue
+ }
+ }
+
+ for r, want := range proprietaryGlyphTestCases[qualifiedFilename] {
+ x, err := f.GlyphIndex(&buf, r)
+ if err != nil {
+ t.Errorf("GlyphIndex(%q): %v", r, err)
+ continue
+ }
+ got, err := f.LoadGlyph(&buf, x, ppem, nil)
+ if err != nil {
+ t.Errorf("LoadGlyph(%q): %v", r, err)
+ continue
+ }
+ if err := checkSegmentsEqual(got, want); err != nil {
+ t.Errorf("LoadGlyph(%q): %v", r, err)
+ continue
+ }
+ }
+
+kernLoop:
+ for _, tc := range proprietaryKernTestCases[qualifiedFilename] {
+ var indexes [2]GlyphIndex
+ for i := range indexes {
+ x, err := f.GlyphIndex(&buf, tc.runes[i])
+ if x == 0 && err == nil {
+ err = errors.New("no glyph index found")
+ }
+ if err != nil {
+ t.Errorf("GlyphIndex(%q): %v", tc.runes[0], err)
+ continue kernLoop
+ }
+ indexes[i] = x
+ }
+ kern, err := f.Kern(&buf, indexes[0], indexes[1], tc.ppem, tc.hinting)
+ if err != nil {
+ t.Errorf("Kern(%q, %q, ppem=%d, hinting=%v): %v",
+ tc.runes[0], tc.runes[1], tc.ppem, tc.hinting, err)
+ continue
+ }
+ if got := Units(kern); got != tc.want {
+ t.Errorf("Kern(%q, %q, ppem=%d, hinting=%v): got %d, want %d",
+ tc.runes[0], tc.runes[1], tc.ppem, tc.hinting, got, tc.want)
+ continue
+ }
+ }
+}
+
+// proprietaryVersions holds the expected version string of each proprietary
+// font tested. If third parties such as Adobe or Microsoft update their fonts,
+// and the tests subsequently fail, these versions should be updated too.
+//
+// Updates are expected to be infrequent. For example, as of 2017, the fonts
+// installed by the Debian ttf-mscorefonts-installer package have last modified
+// times no later than 2001.
+var proprietaryVersions = map[string]string{
+ "adobe/SourceCodePro-Regular.otf": "Version 2.030;PS 1.0;hotconv 16.6.51;makeotf.lib2.5.65220",
+ "adobe/SourceCodePro-Regular.ttf": "Version 2.030;PS 1.000;hotconv 16.6.51;makeotf.lib2.5.65220",
+ "adobe/SourceHanSansSC-Regular.otf": "Version 1.004;PS 1.004;hotconv 1.0.82;makeotf.lib2.5.63406",
+ "adobe/SourceSansPro-Regular.otf": "Version 2.020;PS 2.0;hotconv 1.0.86;makeotf.lib2.5.63406",
+ "adobe/SourceSansPro-Regular.ttf": "Version 2.020;PS 2.000;hotconv 1.0.86;makeotf.lib2.5.63406",
+
+ "microsoft/Arial.ttf": "Version 2.82",
+ "microsoft/Comic_Sans_MS.ttf": "Version 2.10",
+ "microsoft/Times_New_Roman.ttf": "Version 2.82",
+ "microsoft/Webdings.ttf": "Version 1.03",
+}
+
+// proprietaryGlyphIndexTestCases hold a sample of each font's rune to glyph
+// index cmap. The numerical values can be verified by running the ttx tool.
+var proprietaryGlyphIndexTestCases = map[string]map[rune]GlyphIndex{
+ "adobe/SourceCodePro-Regular.otf": {
+ '\u0030': 877, // U+0030 DIGIT ZERO
+ '\u0041': 2, // U+0041 LATIN CAPITAL LETTER A
+ '\u0061': 28, // U+0061 LATIN SMALL LETTER A
+ '\u0104': 64, // U+0104 LATIN CAPITAL LETTER A WITH OGONEK
+ '\u0125': 323, // U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX
+ '\u01f4': 111, // U+01F4 LATIN CAPITAL LETTER G WITH ACUTE
+ '\u03a3': 623, // U+03A3 GREEK CAPITAL LETTER SIGMA
+ '\u2569': 1500, // U+2569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ '\U0001f100': 0, // U+0001F100 DIGIT ZERO FULL STOP
+ },
+ "adobe/SourceCodePro-Regular.ttf": {
+ '\u0030': 877, // U+0030 DIGIT ZERO
+ '\u0041': 2, // U+0041 LATIN CAPITAL LETTER A
+ '\u01f4': 111, // U+01F4 LATIN CAPITAL LETTER G WITH ACUTE
+ },
+ "adobe/SourceHanSansSC-Regular.otf": {
+ '\u0030': 17, // U+0030 DIGIT ZERO
+ '\u0041': 34, // U+0041 LATIN CAPITAL LETTER A
+ '\u00d7': 150, // U+00D7 MULTIPLICATION SIGN
+ '\u1100': 365, // U+1100 HANGUL CHOSEONG KIYEOK
+ '\u25ca': 1254, // U+25CA LOZENGE
+ '\u2e9c': 1359, // U+2E9C CJK RADICAL SUN
+ '\u304b': 1463, // U+304B HIRAGANA LETTER KA
+ '\u4e2d': 9893, // U+4E2D <CJK Ideograph>, 中
+ '\ua960': 47537, // U+A960 HANGUL CHOSEONG TIKEUT-MIEUM
+ '\ufb00': 58919, // U+FB00 LATIN SMALL LIGATURE FF
+ '\uffee': 59213, // U+FFEE HALFWIDTH WHITE CIRCLE
+ '\U0001f100': 59214, // U+0001F100 DIGIT ZERO FULL STOP
+ '\U0001f248': 59449, // U+0001F248 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+ '\U0002f9f4': 61768, // U+0002F9F4 CJK COMPATIBILITY IDEOGRAPH-2F9F4
+ },
+ "adobe/SourceSansPro-Regular.otf": {
+ '\u0041': 2, // U+0041 LATIN CAPITAL LETTER A
+ '\u03a3': 592, // U+03A3 GREEK CAPITAL LETTER SIGMA
+ '\u0435': 999, // U+0435 CYRILLIC SMALL LETTER IE
+ '\u2030': 1728, // U+2030 PER MILLE SIGN
+ },
+ "adobe/SourceSansPro-Regular.ttf": {
+ '\u0041': 2, // U+0041 LATIN CAPITAL LETTER A
+ '\u03a3': 592, // U+03A3 GREEK CAPITAL LETTER SIGMA
+ '\u0435': 999, // U+0435 CYRILLIC SMALL LETTER IE
+ '\u2030': 1728, // U+2030 PER MILLE SIGN
+ },
+
+ "microsoft/Arial.ttf": {
+ '\u0041': 36, // U+0041 LATIN CAPITAL LETTER A
+ '\u00f1': 120, // U+00F1 LATIN SMALL LETTER N WITH TILDE
+ '\u0401': 556, // U+0401 CYRILLIC CAPITAL LETTER IO
+ '\u200d': 745, // U+200D ZERO WIDTH JOINER
+ '\u20ab': 1150, // U+20AB DONG SIGN
+ '\u2229': 320, // U+2229 INTERSECTION
+ '\u04e9': 1319, // U+04E9 CYRILLIC SMALL LETTER BARRED O
+ '\U0001f100': 0, // U+0001F100 DIGIT ZERO FULL STOP
+ },
+ "microsoft/Comic_Sans_MS.ttf": {
+ '\u0041': 36, // U+0041 LATIN CAPITAL LETTER A
+ '\u03af': 573, // U+03AF GREEK SMALL LETTER IOTA WITH TONOS
+ },
+ "microsoft/Times_New_Roman.ttf": {
+ '\u0041': 36, // U+0041 LATIN CAPITAL LETTER A
+ '\u0042': 37, // U+0041 LATIN CAPITAL LETTER B
+ '\u266a': 392, // U+266A EIGHTH NOTE
+ '\uf041': 0, // PRIVATE USE AREA
+ '\uf042': 0, // PRIVATE USE AREA
+ },
+ "microsoft/Webdings.ttf": {
+ '\u0041': 0, // U+0041 LATIN CAPITAL LETTER A
+ '\u0042': 0, // U+0041 LATIN CAPITAL LETTER B
+ '\u266a': 0, // U+266A EIGHTH NOTE
+ '\uf041': 36, // PRIVATE USE AREA
+ '\uf042': 37, // PRIVATE USE AREA
+ },
+}
+
+// proprietaryGlyphTestCases hold a sample of each font's glyph vectors. The
+// numerical values can be verified by running the ttx tool, remembering that:
+// - for PostScript glyphs, ttx coordinates are relative, and hstem / vstem
+// operators are hinting-related and can be ignored.
+// - for TrueType glyphs, ttx coordinates are absolute, and consecutive
+// off-curve points implies an on-curve point at the midpoint.
+var proprietaryGlyphTestCases = map[string]map[rune][]Segment{
+ "adobe/SourceSansPro-Regular.otf": {
+ ',': {
+ // - contour #0
+ // 67 -170 rmoveto
+ moveTo(67, -170),
+ // 81 34 50 67 86 vvcurveto
+ cubeTo(148, -136, 198, -69, 198, 17),
+ // 60 -26 37 -43 -33 -28 -22 -36 -37 27 -20 32 3 4 0 1 3 vhcurveto
+ cubeTo(198, 77, 172, 114, 129, 114),
+ cubeTo(96, 114, 68, 92, 68, 56),
+ cubeTo(68, 19, 95, -1, 127, -1),
+ cubeTo(130, -1, 134, -1, 137, 0),
+ // 1 -53 -34 -44 -57 -25 rrcurveto
+ cubeTo(138, -53, 104, -97, 47, -122),
+ },
+ 'Q': {
+ // - contour #0
+ // 332 57 rmoveto
+ moveTo(332, 57),
+ // -117 -77 106 168 163 77 101 117 117 77 -101 -163 -168 -77 -106 -117 hvcurveto
+ cubeTo(215, 57, 138, 163, 138, 331),
+ cubeTo(138, 494, 215, 595, 332, 595),
+ cubeTo(449, 595, 526, 494, 526, 331),
+ cubeTo(526, 163, 449, 57, 332, 57),
+ // - contour #1
+ // 201 -222 rmoveto
+ moveTo(533, -165),
+ // 39 35 7 8 20 hvcurveto
+ cubeTo(572, -165, 607, -158, 627, -150),
+ // -16 64 rlineto
+ lineTo(611, -86),
+ // -5 -18 -22 -4 -29 hhcurveto
+ cubeTo(593, -91, 571, -95, 542, -95),
+ // -71 -60 29 58 -30 hvcurveto
+ cubeTo(471, -95, 411, -66, 381, -8),
+ // 139 24 93 126 189 vvcurveto
+ cubeTo(520, 16, 613, 142, 613, 331),
+ // 209 -116 128 -165 -165 -115 -127 -210 -193 96 -127 143 -20 vhcurveto
+ cubeTo(613, 540, 497, 668, 332, 668),
+ cubeTo(167, 668, 52, 541, 52, 331),
+ cubeTo(52, 138, 148, 11, 291, -9),
+ // -90 38 83 -66 121 hhcurveto
+ cubeTo(329, -99, 412, -165, 533, -165),
+ },
+ },
+
+ "microsoft/Arial.ttf": {
+ ',': {
+ // - contour #0
+ moveTo(182, 0),
+ lineTo(182, 205),
+ lineTo(387, 205),
+ lineTo(387, 0),
+ quadTo(387, -113, 347, -182),
+ quadTo(307, -252, 220, -290),
+ lineTo(170, -213),
+ quadTo(227, -188, 254, -139),
+ quadTo(281, -91, 284, 0),
+ lineTo(182, 0),
+ },
+ 'i': {
+ // - contour #0
+ moveTo(136, 1259),
+ lineTo(136, 1466),
+ lineTo(316, 1466),
+ lineTo(316, 1259),
+ lineTo(136, 1259),
+ // - contour #1
+ moveTo(136, 0),
+ lineTo(136, 1062),
+ lineTo(316, 1062),
+ lineTo(316, 0),
+ lineTo(136, 0),
+ },
+ 'o': {
+ // - contour #0
+ moveTo(68, 531),
+ quadTo(68, 826, 232, 968),
+ quadTo(369, 1086, 566, 1086),
+ quadTo(785, 1086, 924, 942),
+ quadTo(1063, 799, 1063, 546),
+ quadTo(1063, 341, 1001, 223),
+ quadTo(940, 106, 822, 41),
+ quadTo(705, -24, 566, -24),
+ quadTo(343, -24, 205, 119),
+ quadTo(68, 262, 68, 531),
+ // - contour #1
+ moveTo(253, 531),
+ quadTo(253, 327, 342, 225),
+ quadTo(431, 124, 566, 124),
+ quadTo(700, 124, 789, 226),
+ quadTo(878, 328, 878, 537),
+ quadTo(878, 734, 788, 835),
+ quadTo(699, 937, 566, 937),
+ quadTo(431, 937, 342, 836),
+ quadTo(253, 735, 253, 531),
+ },
+ },
+}
+
+type kernTestCase struct {
+ ppem fixed.Int26_6
+ hinting font.Hinting
+ runes [2]rune
+ want Units
+}
+
+// proprietaryKernTestCases hold a sample of each font's kerning pairs. The
+// numerical values can be verified by running the ttx tool.
+var proprietaryKernTestCases = map[string][]kernTestCase{
+ "microsoft/Arial.ttf": {
+ {2048, font.HintingNone, [2]rune{'A', 'V'}, -152},
+ // U+03B8 GREEK SMALL LETTER THETA
+ // U+03BB GREEK SMALL LETTER LAMDA
+ {2048, font.HintingNone, [2]rune{'\u03b8', '\u03bb'}, -39},
+ {2048, font.HintingNone, [2]rune{'\u03bb', '\u03b8'}, -0},
+ },
+ "microsoft/Comic_Sans_MS.ttf": {
+ {2048, font.HintingNone, [2]rune{'A', 'V'}, 0},
+ },
+ "microsoft/Times_New_Roman.ttf": {
+ {768, font.HintingNone, [2]rune{'A', 'V'}, -99},
+ {768, font.HintingFull, [2]rune{'A', 'V'}, -128},
+ {2048, font.HintingNone, [2]rune{'A', 'A'}, 0},
+ {2048, font.HintingNone, [2]rune{'A', 'T'}, -227},
+ {2048, font.HintingNone, [2]rune{'A', 'V'}, -264},
+ {2048, font.HintingNone, [2]rune{'T', 'A'}, -164},
+ {2048, font.HintingNone, [2]rune{'T', 'T'}, 0},
+ {2048, font.HintingNone, [2]rune{'T', 'V'}, 0},
+ {2048, font.HintingNone, [2]rune{'V', 'A'}, -264},
+ {2048, font.HintingNone, [2]rune{'V', 'T'}, 0},
+ {2048, font.HintingNone, [2]rune{'V', 'V'}, 0},
+ // U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ // U+0393 GREEK CAPITAL LETTER GAMMA
+ {2048, font.HintingNone, [2]rune{'\u0390', '\u0393'}, 0},
+ {2048, font.HintingNone, [2]rune{'\u0393', '\u0390'}, 76},
+ },
+ "microsoft/Webdings.ttf": {
+ {2048, font.HintingNone, [2]rune{'\uf041', '\uf042'}, 0},
+ },
+}
diff --git a/vendor/golang.org/x/image/font/sfnt/sfnt.go b/vendor/golang.org/x/image/font/sfnt/sfnt.go
index d4929a838..02efd5f3a 100644
--- a/vendor/golang.org/x/image/font/sfnt/sfnt.go
+++ b/vendor/golang.org/x/image/font/sfnt/sfnt.go
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:generate go run gen.go
+
// Package sfnt implements a decoder for SFNT font file formats, including
// TrueType and OpenType.
package sfnt // import "golang.org/x/image/font/sfnt"
@@ -13,11 +15,15 @@ package sfnt // import "golang.org/x/image/font/sfnt"
//
// The pyftinspect tool from https://github.com/fonttools/fonttools is useful
// for inspecting SFNT fonts.
+//
+// The ttfdump tool is also useful. For example:
+// ttfdump -t cmap ../testdata/CFFTest.otf dump.txt
import (
"errors"
"io"
+ "golang.org/x/image/font"
"golang.org/x/image/math/fixed"
"golang.org/x/text/encoding/charmap"
)
@@ -25,6 +31,20 @@ import (
// These constants are not part of the specifications, but are limitations used
// by this implementation.
const (
+ // This value is arbitrary, but defends against parsing malicious font
+ // files causing excessive memory allocations. For reference, Adobe's
+ // SourceHanSansSC-Regular.otf has 65535 glyphs and:
+ // - its format-4 cmap table has 1581 segments.
+ // - its format-12 cmap table has 16498 segments.
+ //
+ // TODO: eliminate this constraint? If the cmap table is very large, load
+ // some or all of it lazily (at the time Font.GlyphIndex is called) instead
+ // of all of it eagerly (at the time Font.initialize is called), while
+ // keeping an upper bound on the memory used? This will make the code in
+ // cmap.go more complicated, considering that all of the Font methods are
+ // safe to call concurrently, as long as each call has a different *Buffer.
+ maxCmapSegments = 20000
+
maxGlyphDataLength = 64 * 1024
maxHintBits = 256
maxNumTables = 256
@@ -41,27 +61,34 @@ var (
errInvalidBounds = errors.New("sfnt: invalid bounds")
errInvalidCFFTable = errors.New("sfnt: invalid CFF table")
+ errInvalidCmapTable = errors.New("sfnt: invalid cmap table")
errInvalidGlyphData = errors.New("sfnt: invalid glyph data")
errInvalidHeadTable = errors.New("sfnt: invalid head table")
+ errInvalidKernTable = errors.New("sfnt: invalid kern table")
errInvalidLocaTable = errors.New("sfnt: invalid loca table")
errInvalidLocationData = errors.New("sfnt: invalid location data")
errInvalidMaxpTable = errors.New("sfnt: invalid maxp table")
errInvalidNameTable = errors.New("sfnt: invalid name table")
+ errInvalidPostTable = errors.New("sfnt: invalid post table")
errInvalidSourceData = errors.New("sfnt: invalid source data")
errInvalidTableOffset = errors.New("sfnt: invalid table offset")
errInvalidTableTagOrder = errors.New("sfnt: invalid table tag order")
errInvalidUCS2String = errors.New("sfnt: invalid UCS-2 string")
errInvalidVersion = errors.New("sfnt: invalid version")
- errUnsupportedCFFVersion = errors.New("sfnt: unsupported CFF version")
- errUnsupportedCompoundGlyph = errors.New("sfnt: unsupported compound glyph")
- errUnsupportedGlyphDataLength = errors.New("sfnt: unsupported glyph data length")
- errUnsupportedRealNumberEncoding = errors.New("sfnt: unsupported real number encoding")
- errUnsupportedNumberOfHints = errors.New("sfnt: unsupported number of hints")
- errUnsupportedNumberOfTables = errors.New("sfnt: unsupported number of tables")
- errUnsupportedPlatformEncoding = errors.New("sfnt: unsupported platform encoding")
- errUnsupportedTableOffsetLength = errors.New("sfnt: unsupported table offset or length")
- errUnsupportedType2Charstring = errors.New("sfnt: unsupported Type 2 Charstring")
+ errUnsupportedCFFVersion = errors.New("sfnt: unsupported CFF version")
+ errUnsupportedCmapEncodings = errors.New("sfnt: unsupported cmap encodings")
+ errUnsupportedCompoundGlyph = errors.New("sfnt: unsupported compound glyph")
+ errUnsupportedGlyphDataLength = errors.New("sfnt: unsupported glyph data length")
+ errUnsupportedKernTable = errors.New("sfnt: unsupported kern table")
+ errUnsupportedRealNumberEncoding = errors.New("sfnt: unsupported real number encoding")
+ errUnsupportedNumberOfCmapSegments = errors.New("sfnt: unsupported number of cmap segments")
+ errUnsupportedNumberOfHints = errors.New("sfnt: unsupported number of hints")
+ errUnsupportedNumberOfTables = errors.New("sfnt: unsupported number of tables")
+ errUnsupportedPlatformEncoding = errors.New("sfnt: unsupported platform encoding")
+ errUnsupportedPostTable = errors.New("sfnt: unsupported post table")
+ errUnsupportedTableOffsetLength = errors.New("sfnt: unsupported table offset or length")
+ errUnsupportedType2Charstring = errors.New("sfnt: unsupported Type 2 Charstring")
)
// GlyphIndex is a glyph index in a Font.
@@ -107,16 +134,16 @@ const (
// display resolution (DPI) and font size (e.g. a 12 point font).
type Units int32
-// Platform IDs and Platform Specific IDs as per
-// https://www.microsoft.com/typography/otspec/name.htm
-const (
- pidMacintosh = 1
- pidWindows = 3
-
- psidMacintoshRoman = 0
-
- psidWindowsUCS2 = 1
-)
+// scale returns x divided by unitsPerEm, rounded to the nearest fixed.Int26_6
+// value (1/64th of a pixel).
+func scale(x fixed.Int26_6, unitsPerEm Units) fixed.Int26_6 {
+ if x >= 0 {
+ x += fixed.Int26_6(unitsPerEm) / 2
+ } else {
+ x -= fixed.Int26_6(unitsPerEm) / 2
+ }
+ return x / fixed.Int26_6(unitsPerEm)
+}
func u16(b []byte) uint16 {
_ = b[1] // Bounds check hint to compiler.
@@ -208,6 +235,20 @@ func (s *source) u16(buf []byte, t table, i int) (uint16, error) {
return u16(buf), nil
}
+// u32 returns the uint32 in the table t at the relative offset i.
+//
+// buf is an optional scratch buffer as per the source.view method.
+func (s *source) u32(buf []byte, t table, i int) (uint32, error) {
+ if i < 0 || uint(t.length) < uint(i+4) {
+ return 0, errInvalidBounds
+ }
+ buf, err := s.view(buf, int(t.offset)+i, 4)
+ if err != nil {
+ return 0, err
+ }
+ return u32(buf), nil
+}
+
// table is a section of the font data.
type table struct {
offset, length uint32
@@ -247,6 +288,18 @@ func ParseReaderAt(src io.ReaderAt) (*Font, error) {
//
// The Font methods that don't take a *Buffer argument are always safe to call
// concurrently.
+//
+// Some methods provide lengths or coordinates, e.g. bounds, font metrics and
+// control points. All of these methods take a ppem parameter, which is the
+// number of pixels in 1 em, expressed as a 26.6 fixed point value. For
+// example, if 1 em is 10 pixels then ppem is fixed.I(10), which equals
+// fixed.Int26_6(10 << 6).
+//
+// To get those lengths or coordinates in terms of font units instead of
+// pixels, use ppem = fixed.Int26_6(f.UnitsPerEm()) and if those methods take a
+// font.Hinting parameter, use font.HintingNone. The return values will have
+// type fixed.Int26_6, but those numbers can be converted back to Units with no
+// further scaling necessary.
type Font struct {
src source
@@ -283,11 +336,16 @@ type Font struct {
// https://www.microsoft.com/typography/otspec/otff.htm#otttables
// "Other OpenType Tables".
//
- // TODO: hdmx, kern, vmtx? Others?
+ // TODO: hdmx, vmtx? Others?
+ kern table
cached struct {
+ glyphIndex glyphIndexFunc
indexToLocFormat bool // false means short, true means long.
isPostScript bool
+ kernNumPairs int32
+ kernOffset int32
+ postTableVersion uint32
unitsPerEm Units
// The glyph data for the glyph index i is in
@@ -306,51 +364,96 @@ func (f *Font) initialize() error {
if !f.src.valid() {
return errInvalidSourceData
}
- var buf []byte
+ buf, isPostScript, err := f.initializeTables(nil)
+ if err != nil {
+ return err
+ }
+ // The order of these parseXxx calls matters. Later calls may depend on
+ // information parsed by earlier calls, such as the maxp table's numGlyphs.
+ // To enforce these dependencies, such information is passed and returned
+ // explicitly, and the f.cached fields are only set afterwards.
+ //
+ // When implementing new parseXxx methods, take care not to call methods
+ // such as Font.NumGlyphs that implicitly depend on f.cached fields.
+
+ buf, indexToLocFormat, unitsPerEm, err := f.parseHead(buf)
+ if err != nil {
+ return err
+ }
+ buf, numGlyphs, locations, err := f.parseMaxp(buf, indexToLocFormat, isPostScript)
+ if err != nil {
+ return err
+ }
+ buf, glyphIndex, err := f.parseCmap(buf)
+ if err != nil {
+ return err
+ }
+ buf, kernNumPairs, kernOffset, err := f.parseKern(buf)
+ if err != nil {
+ return err
+ }
+ buf, postTableVersion, err := f.parsePost(buf, numGlyphs)
+ if err != nil {
+ return err
+ }
+
+ f.cached.glyphIndex = glyphIndex
+ f.cached.indexToLocFormat = indexToLocFormat
+ f.cached.isPostScript = isPostScript
+ f.cached.kernNumPairs = kernNumPairs
+ f.cached.kernOffset = kernOffset
+ f.cached.postTableVersion = postTableVersion
+ f.cached.unitsPerEm = unitsPerEm
+ f.cached.locations = locations
+
+ return nil
+}
+
+func (f *Font) initializeTables(buf []byte) (buf1 []byte, isPostScript bool, err error) {
// https://www.microsoft.com/typography/otspec/otff.htm "Organization of an
// OpenType Font" says that "The OpenType font starts with the Offset
// Table", which is 12 bytes.
- buf, err := f.src.view(buf, 0, 12)
+ buf, err = f.src.view(buf, 0, 12)
if err != nil {
- return err
+ return nil, false, err
}
switch u32(buf) {
default:
- return errInvalidVersion
+ return nil, false, errInvalidVersion
case 0x00010000:
// No-op.
case 0x4f54544f: // "OTTO".
- f.cached.isPostScript = true
+ isPostScript = true
}
numTables := int(u16(buf[4:]))
if numTables > maxNumTables {
- return errUnsupportedNumberOfTables
+ return nil, false, errUnsupportedNumberOfTables
}
// "The Offset Table is followed immediately by the Table Record entries...
// sorted in ascending order by tag", 16 bytes each.
buf, err = f.src.view(buf, 12, 16*numTables)
if err != nil {
- return err
+ return nil, false, err
}
for b, first, prevTag := buf, true, uint32(0); len(b) > 0; b = b[16:] {
tag := u32(b)
if first {
first = false
} else if tag <= prevTag {
- return errInvalidTableTagOrder
+ return nil, false, errInvalidTableTagOrder
}
prevTag = tag
o, n := u32(b[8:12]), u32(b[12:16])
if o > maxTableOffset || n > maxTableLength {
- return errUnsupportedTableOffsetLength
+ return nil, false, errUnsupportedTableOffsetLength
}
// We ignore the checksums, but "all tables must begin on four byte
// boundries [sic]".
if o&3 != 0 {
- return errInvalidTableOffset
+ return nil, false, errInvalidTableOffset
}
// Match the 4-byte tag as a uint32. For example, "OS/2" is 0x4f532f32.
@@ -369,6 +472,8 @@ func (f *Font) initialize() error {
f.hhea = table{o, n}
case 0x686d7478:
f.hmtx = table{o, n}
+ case 0x6b65726e:
+ f.kern = table{o, n}
case 0x6c6f6361:
f.loca = table{o, n}
case 0x6d617870:
@@ -379,69 +484,258 @@ func (f *Font) initialize() error {
f.post = table{o, n}
}
}
+ return buf, isPostScript, nil
+}
- var u uint16
+func (f *Font) parseCmap(buf []byte) (buf1 []byte, glyphIndex glyphIndexFunc, err error) {
+ // https://www.microsoft.com/typography/OTSPEC/cmap.htm
+ const headerSize, entrySize = 4, 8
+ if f.cmap.length < headerSize {
+ return nil, nil, errInvalidCmapTable
+ }
+ u, err := f.src.u16(buf, f.cmap, 2)
+ if err != nil {
+ return nil, nil, err
+ }
+ numSubtables := int(u)
+ if f.cmap.length < headerSize+entrySize*uint32(numSubtables) {
+ return nil, nil, errInvalidCmapTable
+ }
+
+ var (
+ bestWidth int
+ bestOffset uint32
+ bestLength uint32
+ bestFormat uint16
+ )
+
+ // Scan all of the subtables, picking the widest supported one. See the
+ // platformEncodingWidth comment for more discussion of width.
+ for i := 0; i < numSubtables; i++ {
+ buf, err = f.src.view(buf, int(f.cmap.offset)+headerSize+entrySize*i, entrySize)
+ if err != nil {
+ return nil, nil, err
+ }
+ pid := u16(buf)
+ psid := u16(buf[2:])
+ width := platformEncodingWidth(pid, psid)
+ if width <= bestWidth {
+ continue
+ }
+ offset := u32(buf[4:])
+
+ if offset > f.cmap.length-4 {
+ return nil, nil, errInvalidCmapTable
+ }
+ buf, err = f.src.view(buf, int(f.cmap.offset+offset), 4)
+ if err != nil {
+ return nil, nil, err
+ }
+ format := u16(buf)
+ if !supportedCmapFormat(format, pid, psid) {
+ continue
+ }
+ length := uint32(u16(buf[2:]))
+
+ bestWidth = width
+ bestOffset = offset
+ bestLength = length
+ bestFormat = format
+ }
+
+ if bestWidth == 0 {
+ return nil, nil, errUnsupportedCmapEncodings
+ }
+ return f.makeCachedGlyphIndex(buf, bestOffset, bestLength, bestFormat)
+}
+
+func (f *Font) parseHead(buf []byte) (buf1 []byte, indexToLocFormat bool, unitsPerEm Units, err error) {
// https://www.microsoft.com/typography/otspec/head.htm
+
if f.head.length != 54 {
- return errInvalidHeadTable
+ return nil, false, 0, errInvalidHeadTable
}
- u, err = f.src.u16(buf, f.head, 18)
+ u, err := f.src.u16(buf, f.head, 18)
if err != nil {
- return err
+ return nil, false, 0, err
}
if u == 0 {
- return errInvalidHeadTable
+ return nil, false, 0, errInvalidHeadTable
}
- f.cached.unitsPerEm = Units(u)
+ unitsPerEm = Units(u)
u, err = f.src.u16(buf, f.head, 50)
if err != nil {
- return err
+ return nil, false, 0, err
+ }
+ indexToLocFormat = u != 0
+ return buf, indexToLocFormat, unitsPerEm, nil
+}
+
+func (f *Font) parseKern(buf []byte) (buf1 []byte, kernNumPairs, kernOffset int32, err error) {
+ // https://www.microsoft.com/typography/otspec/kern.htm
+
+ if f.kern.length == 0 {
+ return buf, 0, 0, nil
+ }
+ const headerSize = 4
+ if f.kern.length < headerSize {
+ return nil, 0, 0, errInvalidKernTable
+ }
+ buf, err = f.src.view(buf, int(f.kern.offset), headerSize)
+ if err != nil {
+ return nil, 0, 0, err
+ }
+ offset := int(f.kern.offset) + headerSize
+ length := int(f.kern.length) - headerSize
+
+ switch version := u16(buf); version {
+ case 0:
+ // TODO: support numTables != 1. Testing that requires finding such a font.
+ if numTables := int(u16(buf[2:])); numTables != 1 {
+ return nil, 0, 0, errUnsupportedKernTable
+ }
+ return f.parseKernVersion0(buf, offset, length)
+ case 1:
+ // TODO: find such a (proprietary?) font, and support it. Both of
+ // https://www.microsoft.com/typography/otspec/kern.htm
+ // https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6kern.html
+ // say that such fonts work on Mac OS but not on Windows.
+ }
+ return nil, 0, 0, errUnsupportedKernTable
+}
+
+func (f *Font) parseKernVersion0(buf []byte, offset, length int) (buf1 []byte, kernNumPairs, kernOffset int32, err error) {
+ const headerSize = 6
+ if length < headerSize {
+ return nil, 0, 0, errInvalidKernTable
+ }
+ buf, err = f.src.view(buf, offset, headerSize)
+ if err != nil {
+ return nil, 0, 0, err
}
- f.cached.indexToLocFormat = u != 0
+ if version := u16(buf); version != 0 {
+ return nil, 0, 0, errUnsupportedKernTable
+ }
+ subtableLength := int(u16(buf[2:]))
+ if subtableLength < headerSize || length < subtableLength {
+ return nil, 0, 0, errInvalidKernTable
+ }
+ if coverageBits := buf[5]; coverageBits != 0x01 {
+ // We only support horizontal kerning.
+ return nil, 0, 0, errUnsupportedKernTable
+ }
+ offset += headerSize
+ length -= headerSize
+ subtableLength -= headerSize
+
+ switch format := buf[4]; format {
+ case 0:
+ return f.parseKernFormat0(buf, offset, subtableLength)
+ case 2:
+ // TODO: find such a (proprietary?) font, and support it.
+ }
+ return nil, 0, 0, errUnsupportedKernTable
+}
+func (f *Font) parseKernFormat0(buf []byte, offset, length int) (buf1 []byte, kernNumPairs, kernOffset int32, err error) {
+ const headerSize, entrySize = 8, 6
+ if length < headerSize {
+ return nil, 0, 0, errInvalidKernTable
+ }
+ buf, err = f.src.view(buf, offset, headerSize)
+ if err != nil {
+ return nil, 0, 0, err
+ }
+ kernNumPairs = int32(u16(buf))
+ if length != headerSize+entrySize*int(kernNumPairs) {
+ return nil, 0, 0, errInvalidKernTable
+ }
+ return buf, kernNumPairs, int32(offset) + headerSize, nil
+}
+
+func (f *Font) parseMaxp(buf []byte, indexToLocFormat, isPostScript bool) (buf1 []byte, numGlyphs int, locations []uint32, err error) {
// https://www.microsoft.com/typography/otspec/maxp.htm
- if f.cached.isPostScript {
+
+ if isPostScript {
if f.maxp.length != 6 {
- return errInvalidMaxpTable
+ return nil, 0, nil, errInvalidMaxpTable
}
} else {
if f.maxp.length != 32 {
- return errInvalidMaxpTable
+ return nil, 0, nil, errInvalidMaxpTable
}
}
- u, err = f.src.u16(buf, f.maxp, 4)
+ u, err := f.src.u16(buf, f.maxp, 4)
if err != nil {
- return err
+ return nil, 0, nil, err
}
- numGlyphs := int(u)
+ numGlyphs = int(u)
- if f.cached.isPostScript {
+ if isPostScript {
p := cffParser{
src: &f.src,
base: int(f.cff.offset),
offset: int(f.cff.offset),
end: int(f.cff.offset + f.cff.length),
}
- f.cached.locations, err = p.parse()
+ locations, err = p.parse()
if err != nil {
- return err
+ return nil, 0, nil, err
}
} else {
- f.cached.locations, err = parseLoca(
- &f.src, f.loca, f.glyf.offset, f.cached.indexToLocFormat, numGlyphs)
+ locations, err = parseLoca(&f.src, f.loca, f.glyf.offset, indexToLocFormat, numGlyphs)
if err != nil {
- return err
+ return nil, 0, nil, err
}
}
- if len(f.cached.locations) != numGlyphs+1 {
- return errInvalidLocationData
+ if len(locations) != numGlyphs+1 {
+ return nil, 0, nil, errInvalidLocationData
}
- return nil
+
+ return buf, numGlyphs, locations, nil
}
-// TODO: func (f *Font) GlyphIndex(r rune) (x GlyphIndex, ok bool)
-// This will require parsing the cmap table.
+func (f *Font) parsePost(buf []byte, numGlyphs int) (buf1 []byte, postTableVersion uint32, err error) {
+ // https://www.microsoft.com/typography/otspec/post.htm
+
+ const headerSize = 32
+ if f.post.length < headerSize {
+ return nil, 0, errInvalidPostTable
+ }
+ u, err := f.src.u32(buf, f.post, 0)
+ if err != nil {
+ return nil, 0, err
+ }
+ switch u {
+ case 0x20000:
+ if f.post.length < headerSize+2+2*uint32(numGlyphs) {
+ return nil, 0, errInvalidPostTable
+ }
+ case 0x30000:
+ // No-op.
+ default:
+ return nil, 0, errUnsupportedPostTable
+ }
+ return buf, u, nil
+}
+
+// TODO: API for looking up glyph variants?? For example, some fonts may
+// provide both slashed and dotted zero glyphs ('0'), or regular and 'old
+// style' numerals, and users can direct software to choose a variant.
+
+type glyphIndexFunc func(f *Font, b *Buffer, r rune) (GlyphIndex, error)
+
+// GlyphIndex returns the glyph index for the given rune.
+//
+// It returns (0, nil) if there is no glyph for r.
+// https://www.microsoft.com/typography/OTSPEC/cmap.htm says that "Character
+// codes that do not correspond to any glyph in the font should be mapped to
+// glyph index 0. The glyph at this location must be a special glyph
+// representing a missing character, commonly known as .notdef."
+func (f *Font) GlyphIndex(b *Buffer, r rune) (GlyphIndex, error) {
+ return f.cached.glyphIndex(f, b, r)
+}
func (f *Font) viewGlyphData(b *Buffer, x GlyphIndex) ([]byte, error) {
xx := int(x)
@@ -458,15 +752,16 @@ func (f *Font) viewGlyphData(b *Buffer, x GlyphIndex) ([]byte, error) {
// LoadGlyphOptions are the options to the Font.LoadGlyph method.
type LoadGlyphOptions struct {
- // TODO: scale / transform / hinting.
+ // TODO: transform / hinting.
}
-// LoadGlyph returns the vector segments for the x'th glyph.
+// LoadGlyph returns the vector segments for the x'th glyph. ppem is the number
+// of pixels in 1 em.
//
// If b is non-nil, the segments become invalid to use once b is re-used.
//
// It returns ErrNotFound if the glyph index is out of range.
-func (f *Font) LoadGlyph(b *Buffer, x GlyphIndex, opts *LoadGlyphOptions) ([]Segment, error) {
+func (f *Font) LoadGlyph(b *Buffer, x GlyphIndex, ppem fixed.Int26_6, opts *LoadGlyphOptions) ([]Segment, error) {
if b == nil {
b = &Buffer{}
}
@@ -491,11 +786,153 @@ func (f *Font) LoadGlyph(b *Buffer, x GlyphIndex, opts *LoadGlyphOptions) ([]Seg
b.segments = segments
}
- // TODO: look at opts to scale / transform / hint the Buffer.segments.
+ // Scale the segments. If we want to support hinting, we'll have to push
+ // the scaling computation into the PostScript / TrueType specific glyph
+ // loading code, such as the appendGlyfSegments body, since TrueType
+ // hinting bytecode works on the scaled glyph vectors. For now, though,
+ // it's simpler to scale as a post-processing step.
+ for i := range b.segments {
+ s := &b.segments[i]
+ for j := range s.Args {
+ s.Args[j] = scale(s.Args[j]*ppem, f.cached.unitsPerEm)
+ }
+ }
+
+ // TODO: look at opts to transform / hint the Buffer.segments.
return b.segments, nil
}
+// GlyphName returns the name of the x'th glyph.
+//
+// Not every font contains glyph names. If not present, GlyphName will return
+// ("", nil).
+//
+// If present, the glyph name, provided by the font, is assumed to follow the
+// Adobe Glyph List Specification:
+// https://github.com/adobe-type-tools/agl-specification/blob/master/README.md
+//
+// This is also known as the "Adobe Glyph Naming convention", the "Adobe
+// document [for] Unicode and Glyph Names" or "PostScript glyph names".
+//
+// It returns ErrNotFound if the glyph index is out of range.
+func (f *Font) GlyphName(b *Buffer, x GlyphIndex) (string, error) {
+ if int(x) >= f.NumGlyphs() {
+ return "", ErrNotFound
+ }
+ if f.cached.postTableVersion != 0x20000 {
+ return "", nil
+ }
+ if b == nil {
+ b = &Buffer{}
+ }
+
+ // The wire format for a Version 2 post table is documented at:
+ // https://www.microsoft.com/typography/otspec/post.htm
+ const glyphNameIndexOffset = 34
+
+ buf, err := b.view(&f.src, int(f.post.offset)+glyphNameIndexOffset+2*int(x), 2)
+ if err != nil {
+ return "", err
+ }
+ u := u16(buf)
+ if u < numBuiltInPostNames {
+ i := builtInPostNamesOffsets[u+0]
+ j := builtInPostNamesOffsets[u+1]
+ return builtInPostNamesData[i:j], nil
+ }
+ // https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6post.html
+ // says that "32768 through 65535 are reserved for future use".
+ if u > 32767 {
+ return "", errUnsupportedPostTable
+ }
+ u -= numBuiltInPostNames
+
+ // Iterate through the list of Pascal-formatted strings. A linear scan is
+ // clearly O(u), which isn't great (as the obvious loop, calling
+ // Font.GlyphName, to get all of the glyph names in a font has quadratic
+ // complexity), but the wire format doesn't suggest a better alternative.
+
+ offset := glyphNameIndexOffset + 2*f.NumGlyphs()
+ buf, err = b.view(&f.src, int(f.post.offset)+offset, int(f.post.length)-offset)
+ if err != nil {
+ return "", err
+ }
+
+ for {
+ if len(buf) == 0 {
+ return "", errInvalidPostTable
+ }
+ n := 1 + int(buf[0])
+ if len(buf) < n {
+ return "", errInvalidPostTable
+ }
+ if u == 0 {
+ return string(buf[1:n]), nil
+ }
+ buf = buf[n:]
+ u--
+ }
+}
+
+// Kern returns the horizontal adjustment for the kerning pair (x0, x1). A
+// positive kern means to move the glyphs further apart. ppem is the number of
+// pixels in 1 em.
+//
+// It returns ErrNotFound if either glyph index is out of range.
+func (f *Font) Kern(b *Buffer, x0, x1 GlyphIndex, ppem fixed.Int26_6, h font.Hinting) (fixed.Int26_6, error) {
+ // TODO: how should this work with the GPOS table and CFF fonts?
+ // https://www.microsoft.com/typography/otspec/kern.htm says that
+ // "OpenTypeâ„¢ fonts containing CFF outlines are not supported by the 'kern'
+ // table and must use the 'GPOS' OpenType Layout table."
+
+ if n := f.NumGlyphs(); int(x0) >= n || int(x1) >= n {
+ return 0, ErrNotFound
+ }
+ // Not every font has a kern table. If it doesn't, there's no need to
+ // allocate a Buffer.
+ if f.kern.length == 0 {
+ return 0, nil
+ }
+ if b == nil {
+ b = &Buffer{}
+ }
+
+ key := uint32(x0)<<16 | uint32(x1)
+ lo, hi := int32(0), f.cached.kernNumPairs
+ for lo < hi {
+ i := (lo + hi) / 2
+
+ // TODO: this view call inside the inner loop can lead to many small
+ // reads instead of fewer larger reads, which can be expensive. We
+ // should be able to do better, although we don't want to make (one)
+ // arbitrarily large read. Perhaps we should round up reads to 4K or 8K
+ // chunks. For reference, Arial.ttf's kern table is 5472 bytes.
+ // Times_New_Roman.ttf's kern table is 5220 bytes.
+ const entrySize = 6
+ buf, err := b.view(&f.src, int(f.cached.kernOffset+i*entrySize), entrySize)
+ if err != nil {
+ return 0, err
+ }
+
+ k := u32(buf)
+ if k < key {
+ lo = i + 1
+ } else if k > key {
+ hi = i
+ } else {
+ kern := fixed.Int26_6(int16(u16(buf[4:])))
+ kern = scale(kern*ppem, f.cached.unitsPerEm)
+ if h == font.HintingFull {
+ // Quantize the fixed.Int26_6 value to the nearest pixel.
+ kern = (kern + 32) &^ 63
+ }
+ return kern, nil
+ }
+ }
+ return 0, nil
+}
+
// Name returns the name value keyed by the given NameID.
//
// It returns ErrNotFound if there is no value for that key.
@@ -512,14 +949,14 @@ func (f *Font) Name(b *Buffer, id NameID) (string, error) {
if err != nil {
return "", err
}
- nSubtables := u16(buf[2:])
- if f.name.length < headerSize+entrySize*uint32(nSubtables) {
+ numSubtables := u16(buf[2:])
+ if f.name.length < headerSize+entrySize*uint32(numSubtables) {
return "", errInvalidNameTable
}
stringOffset := u16(buf[4:])
seen := false
- for i, n := 0, int(nSubtables); i < n; i++ {
+ for i, n := 0, int(numSubtables); i < n; i++ {
buf, err := b.view(&f.src, int(f.name.offset)+headerSize+entrySize*i, entrySize)
if err != nil {
return "", err
diff --git a/vendor/golang.org/x/image/font/sfnt/sfnt_test.go b/vendor/golang.org/x/image/font/sfnt/sfnt_test.go
index 4ffd72f40..85d96a96f 100644
--- a/vendor/golang.org/x/image/font/sfnt/sfnt_test.go
+++ b/vendor/golang.org/x/image/font/sfnt/sfnt_test.go
@@ -6,6 +6,7 @@ package sfnt
import (
"bytes"
+ "fmt"
"io/ioutil"
"path/filepath"
"testing"
@@ -14,52 +15,48 @@ import (
"golang.org/x/image/math/fixed"
)
-func moveTo(xa, ya int) Segment {
+func moveTo(xa, ya fixed.Int26_6) Segment {
return Segment{
- Op: SegmentOpMoveTo,
- Args: [6]fixed.Int26_6{
- 0: fixed.I(xa),
- 1: fixed.I(ya),
- },
+ Op: SegmentOpMoveTo,
+ Args: [6]fixed.Int26_6{xa, ya},
}
}
-func lineTo(xa, ya int) Segment {
+func lineTo(xa, ya fixed.Int26_6) Segment {
return Segment{
- Op: SegmentOpLineTo,
- Args: [6]fixed.Int26_6{
- 0: fixed.I(xa),
- 1: fixed.I(ya),
- },
+ Op: SegmentOpLineTo,
+ Args: [6]fixed.Int26_6{xa, ya},
}
}
-func quadTo(xa, ya, xb, yb int) Segment {
+func quadTo(xa, ya, xb, yb fixed.Int26_6) Segment {
return Segment{
- Op: SegmentOpQuadTo,
- Args: [6]fixed.Int26_6{
- 0: fixed.I(xa),
- 1: fixed.I(ya),
- 2: fixed.I(xb),
- 3: fixed.I(yb),
- },
+ Op: SegmentOpQuadTo,
+ Args: [6]fixed.Int26_6{xa, ya, xb, yb},
}
}
-func cubeTo(xa, ya, xb, yb, xc, yc int) Segment {
+func cubeTo(xa, ya, xb, yb, xc, yc fixed.Int26_6) Segment {
return Segment{
- Op: SegmentOpCubeTo,
- Args: [6]fixed.Int26_6{
- 0: fixed.I(xa),
- 1: fixed.I(ya),
- 2: fixed.I(xb),
- 3: fixed.I(yb),
- 4: fixed.I(xc),
- 5: fixed.I(yc),
- },
+ Op: SegmentOpCubeTo,
+ Args: [6]fixed.Int26_6{xa, ya, xb, yb, xc, yc},
}
}
+func checkSegmentsEqual(got, want []Segment) error {
+ if len(got) != len(want) {
+ return fmt.Errorf("got %d elements, want %d\noverall:\ngot %v\nwant %v",
+ len(got), len(want), got, want)
+ }
+ for i, g := range got {
+ if w := want[i]; g != w {
+ return fmt.Errorf("element %d:\ngot %v\nwant %v\noverall:\ngot %v\nwant %v",
+ i, g, w, got, want)
+ }
+ }
+ return nil
+}
+
func TestTrueTypeParse(t *testing.T) {
f, err := Parse(goregular.TTF)
if err != nil {
@@ -88,6 +85,167 @@ func testTrueType(t *testing.T, f *Font) {
}
}
+func TestGoRegularGlyphIndex(t *testing.T) {
+ f, err := Parse(goregular.TTF)
+ if err != nil {
+ t.Fatalf("Parse: %v", err)
+ }
+
+ testCases := []struct {
+ r rune
+ want GlyphIndex
+ }{
+ // Glyphs that aren't present in Go Regular.
+ {'\u001f', 0}, // U+001F <control>
+ {'\u0200', 0}, // U+0200 LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+ {'\u2000', 0}, // U+2000 EN QUAD
+
+ // The want values below can be verified by running the ttx tool on
+ // Go-Regular.ttf.
+ //
+ // The actual values are ad hoc, and result from whatever tools the
+ // Bigelow & Holmes type foundry used and the order in which they
+ // crafted the glyphs. They may change over time as newer versions of
+ // the font are released. In practice, though, running this test with
+ // coverage analysis suggests that it covers both the zero and non-zero
+ // cmapEntry16.offset cases for a format-4 cmap table.
+
+ {'\u0020', 3}, // U+0020 SPACE
+ {'\u0021', 4}, // U+0021 EXCLAMATION MARK
+ {'\u0022', 5}, // U+0022 QUOTATION MARK
+ {'\u0023', 6}, // U+0023 NUMBER SIGN
+ {'\u0024', 223}, // U+0024 DOLLAR SIGN
+ {'\u0025', 7}, // U+0025 PERCENT SIGN
+ {'\u0026', 8}, // U+0026 AMPERSAND
+ {'\u0027', 9}, // U+0027 APOSTROPHE
+
+ {'\u03bd', 423}, // U+03BD GREEK SMALL LETTER NU
+ {'\u03be', 424}, // U+03BE GREEK SMALL LETTER XI
+ {'\u03bf', 438}, // U+03BF GREEK SMALL LETTER OMICRON
+ {'\u03c0', 208}, // U+03C0 GREEK SMALL LETTER PI
+ {'\u03c1', 425}, // U+03C1 GREEK SMALL LETTER RHO
+ {'\u03c2', 426}, // U+03C2 GREEK SMALL LETTER FINAL SIGMA
+ }
+
+ var b Buffer
+ for _, tc := range testCases {
+ got, err := f.GlyphIndex(&b, tc.r)
+ if err != nil {
+ t.Errorf("r=%q: %v", tc.r, err)
+ continue
+ }
+ if got != tc.want {
+ t.Errorf("r=%q: got %d, want %d", tc.r, got, tc.want)
+ continue
+ }
+ }
+}
+
+func TestGlyphIndex(t *testing.T) {
+ data, err := ioutil.ReadFile(filepath.FromSlash("../testdata/cmapTest.ttf"))
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ for _, format := range []int{-1, 0, 4, 12} {
+ testGlyphIndex(t, data, format)
+ }
+}
+
+func testGlyphIndex(t *testing.T, data []byte, cmapFormat int) {
+ if cmapFormat >= 0 {
+ originalSupportedCmapFormat := supportedCmapFormat
+ defer func() {
+ supportedCmapFormat = originalSupportedCmapFormat
+ }()
+ supportedCmapFormat = func(format, pid, psid uint16) bool {
+ return int(format) == cmapFormat && originalSupportedCmapFormat(format, pid, psid)
+ }
+ }
+
+ f, err := Parse(data)
+ if err != nil {
+ t.Errorf("cmapFormat=%d: %v", cmapFormat, err)
+ return
+ }
+
+ testCases := []struct {
+ r rune
+ want GlyphIndex
+ }{
+ // Glyphs that aren't present in cmapTest.ttf.
+ {'?', 0},
+ {'\ufffd', 0},
+ {'\U0001f4a9', 0},
+
+ // For a .TTF file, FontForge maps:
+ // - ".notdef" to glyph index 0.
+ // - ".null" to glyph index 1.
+ // - "nonmarkingreturn" to glyph index 2.
+
+ {'/', 0},
+ {'0', 3},
+ {'1', 4},
+ {'2', 5},
+ {'3', 0},
+
+ {'@', 0},
+ {'A', 6},
+ {'B', 7},
+ {'C', 0},
+
+ {'`', 0},
+ {'a', 8},
+ {'b', 0},
+
+ // Of the remaining runes, only U+00FF LATIN SMALL LETTER Y WITH
+ // DIAERESIS is in both the Mac Roman encoding and the cmapTest.ttf
+ // font file.
+ {'\u00fe', 0},
+ {'\u00ff', 9},
+ {'\u0100', 10},
+ {'\u0101', 11},
+ {'\u0102', 0},
+
+ {'\u4e2c', 0},
+ {'\u4e2d', 12},
+ {'\u4e2e', 0},
+
+ {'\U0001f0a0', 0},
+ {'\U0001f0a1', 13},
+ {'\U0001f0a2', 0},
+
+ {'\U0001f0b0', 0},
+ {'\U0001f0b1', 14},
+ {'\U0001f0b2', 15},
+ {'\U0001f0b3', 0},
+ }
+
+ var b Buffer
+ for _, tc := range testCases {
+ want := tc.want
+ switch {
+ case cmapFormat == 0 && tc.r > '\u007f' && tc.r != '\u00ff':
+ // cmap format 0, with the Macintosh Roman encoding, can only
+ // represent a limited set of non-ASCII runes, e.g. U+00FF.
+ want = 0
+ case cmapFormat == 4 && tc.r > '\uffff':
+ // cmap format 4 only supports the Basic Multilingual Plane (BMP).
+ want = 0
+ }
+
+ got, err := f.GlyphIndex(&b, tc.r)
+ if err != nil {
+ t.Errorf("cmapFormat=%d, r=%q: %v", cmapFormat, tc.r, err)
+ continue
+ }
+ if got != want {
+ t.Errorf("cmapFormat=%d, r=%q: got %d, want %d", cmapFormat, tc.r, got, want)
+ continue
+ }
+ }
+}
+
func TestPostScriptSegments(t *testing.T) {
// wants' vectors correspond 1-to-1 to what's in the CFFTest.sfd file,
// although OpenType/CFF and FontForge's SFD have reversed orders.
@@ -226,40 +384,32 @@ func TestTrueTypeSegments(t *testing.T) {
}
func testSegments(t *testing.T, filename string, wants [][]Segment) {
- data, err := ioutil.ReadFile(filepath.Join("..", "testdata", filename))
+ data, err := ioutil.ReadFile(filepath.FromSlash("../testdata/" + filename))
if err != nil {
- t.Fatal(err)
+ t.Fatalf("ReadFile: %v", err)
}
f, err := Parse(data)
if err != nil {
- t.Fatal(err)
+ t.Fatalf("Parse: %v", err)
}
+ ppem := fixed.Int26_6(f.UnitsPerEm())
if ng := f.NumGlyphs(); ng != len(wants) {
t.Fatalf("NumGlyphs: got %d, want %d", ng, len(wants))
}
var b Buffer
-loop:
for i, want := range wants {
- got, err := f.LoadGlyph(&b, GlyphIndex(i), nil)
+ got, err := f.LoadGlyph(&b, GlyphIndex(i), ppem, nil)
if err != nil {
t.Errorf("i=%d: LoadGlyph: %v", i, err)
continue
}
- if len(got) != len(want) {
- t.Errorf("i=%d: got %d elements, want %d\noverall:\ngot %v\nwant %v",
- i, len(got), len(want), got, want)
+ if err := checkSegmentsEqual(got, want); err != nil {
+ t.Errorf("i=%d: %v", i, err)
continue
}
- for j, g := range got {
- if w := want[j]; g != w {
- t.Errorf("i=%d: element %d:\ngot %v\nwant %v\noverall:\ngot %v\nwant %v",
- i, j, g, w, got, want)
- continue loop
- }
- }
}
- if _, err := f.LoadGlyph(nil, 0xffff, nil); err != ErrNotFound {
+ if _, err := f.LoadGlyph(nil, 0xffff, ppem, nil); err != ErrNotFound {
t.Errorf("LoadGlyph(..., 0xffff, ...):\ngot %v\nwant %v", err, ErrNotFound)
}
@@ -270,3 +420,131 @@ loop:
t.Errorf("Name:\ngot %q\nwant %q", name, want)
}
}
+
+func TestPPEM(t *testing.T) {
+ data, err := ioutil.ReadFile(filepath.FromSlash("../testdata/glyfTest.ttf"))
+ if err != nil {
+ t.Fatalf("ReadFile: %v", err)
+ }
+ f, err := Parse(data)
+ if err != nil {
+ t.Fatalf("Parse: %v", err)
+ }
+ var b Buffer
+ x, err := f.GlyphIndex(&b, '1')
+ if err != nil {
+ t.Fatalf("GlyphIndex: %v", err)
+ }
+ if x == 0 {
+ t.Fatalf("GlyphIndex: no glyph index found for the rune '1'")
+ }
+
+ testCases := []struct {
+ ppem fixed.Int26_6
+ want []Segment
+ }{{
+ ppem: fixed.Int26_6(12 << 6),
+ want: []Segment{
+ moveTo(77, 0),
+ lineTo(77, 614),
+ lineTo(230, 614),
+ lineTo(230, 0),
+ lineTo(77, 0),
+ },
+ }, {
+ ppem: fixed.Int26_6(2048),
+ want: []Segment{
+ moveTo(205, 0),
+ lineTo(205, 1638),
+ lineTo(614, 1638),
+ lineTo(614, 0),
+ lineTo(205, 0),
+ },
+ }}
+
+ for i, tc := range testCases {
+ got, err := f.LoadGlyph(&b, x, tc.ppem, nil)
+ if err != nil {
+ t.Errorf("i=%d: LoadGlyph: %v", i, err)
+ continue
+ }
+ if err := checkSegmentsEqual(got, tc.want); err != nil {
+ t.Errorf("i=%d: %v", i, err)
+ continue
+ }
+ }
+}
+
+func TestGlyphName(t *testing.T) {
+ f, err := Parse(goregular.TTF)
+ if err != nil {
+ t.Fatalf("Parse: %v", err)
+ }
+
+ testCases := []struct {
+ r rune
+ want string
+ }{
+ {'\x00', "NULL"},
+ {'!', "exclam"},
+ {'A', "A"},
+ {'{', "braceleft"},
+ {'\u00c4', "Adieresis"}, // U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+ {'\u2020', "dagger"}, // U+2020 DAGGER
+ {'\u2660', "spade"}, // U+2660 BLACK SPADE SUIT
+ {'\uf800', "gopher"}, // U+F800 <Private Use>
+ {'\ufffe', ".notdef"}, // Not in the Go Regular font, so GlyphIndex returns (0, nil).
+ }
+
+ var b Buffer
+ for _, tc := range testCases {
+ x, err := f.GlyphIndex(&b, tc.r)
+ if err != nil {
+ t.Errorf("r=%q: GlyphIndex: %v", tc.r, err)
+ continue
+ }
+ got, err := f.GlyphName(&b, x)
+ if err != nil {
+ t.Errorf("r=%q: GlyphName: %v", tc.r, err)
+ continue
+ }
+ if got != tc.want {
+ t.Errorf("r=%q: got %q, want %q", tc.r, got, tc.want)
+ continue
+ }
+ }
+}
+
+func TestBuiltInPostNames(t *testing.T) {
+ testCases := []struct {
+ x GlyphIndex
+ want string
+ }{
+ {0, ".notdef"},
+ {1, ".null"},
+ {2, "nonmarkingreturn"},
+ {13, "asterisk"},
+ {36, "A"},
+ {93, "z"},
+ {123, "ocircumflex"},
+ {202, "Edieresis"},
+ {255, "Ccaron"},
+ {256, "ccaron"},
+ {257, "dcroat"},
+ {258, ""},
+ {999, ""},
+ {0xffff, ""},
+ }
+
+ for _, tc := range testCases {
+ if tc.x >= numBuiltInPostNames {
+ continue
+ }
+ i := builtInPostNamesOffsets[tc.x+0]
+ j := builtInPostNamesOffsets[tc.x+1]
+ got := builtInPostNamesData[i:j]
+ if got != tc.want {
+ t.Errorf("x=%d: got %q, want %q", tc.x, got, tc.want)
+ }
+ }
+}
diff --git a/vendor/golang.org/x/image/font/sfnt/truetype.go b/vendor/golang.org/x/image/font/sfnt/truetype.go
index 851904d10..c0eefba56 100644
--- a/vendor/golang.org/x/image/font/sfnt/truetype.go
+++ b/vendor/golang.org/x/image/font/sfnt/truetype.go
@@ -113,6 +113,11 @@ func appendGlyfSegments(dst []Segment, data []byte) ([]Segment, error) {
return nil, errInvalidGlyphData
}
+ // TODO: support compound glyphs.
+ if numContours < 0 {
+ return nil, errUnsupportedCompoundGlyph
+ }
+
// Skip the hinting instructions.
index += 2
if index > len(data) {
@@ -124,19 +129,14 @@ func appendGlyfSegments(dst []Segment, data []byte) ([]Segment, error) {
return nil, errInvalidGlyphData
}
- // TODO: support compound glyphs.
- if numContours < 0 {
- return nil, errUnsupportedCompoundGlyph
- }
-
// For simple (non-compound) glyphs, the remainder of the glyf data
// consists of (flags, x, y) points: the Bézier curve segments. These are
- // stored in columns (all the flags first, then all the x co-ordinates,
- // then all the y co-ordinates), not rows, as it compresses better.
+ // stored in columns (all the flags first, then all the x coordinates, then
+ // all the y coordinates), not rows, as it compresses better.
//
// Decoding those points in row order involves two passes. The first pass
// determines the indexes (relative to the data slice) of where the flags,
- // the x co-ordinates and the y co-ordinates each start.
+ // the x coordinates and the y coordinates each start.
flagIndex := int32(index)
xIndex, yIndex, ok := findXYIndexes(data, index, numPoints)
if !ok {
@@ -357,9 +357,18 @@ func (g *glyfIter) nextSegment() (ok bool) {
return true
}
+ // Convert the tuple (g.x, g.y) to a fixed.Point26_6, since the latter
+ // is what's held in a Segment. The input (g.x, g.y) is a pair of int16
+ // values, measured in font units, since that is what the underlying
+ // format provides. The output is a pair of fixed.Int26_6 values. A
+ // fixed.Int26_6 usually represents a 26.6 fixed number of pixels, but
+ // this here is just a straight numerical conversion, with no scaling
+ // factor. A later step scales the Segment.Args values by such a factor
+ // to convert e.g. 1792 font units to 10.5 pixels at 2048 font units
+ // per em and 12 ppem (pixels per em).
p := fixed.Point26_6{
- X: fixed.Int26_6(g.x) << 6,
- Y: fixed.Int26_6(g.y) << 6,
+ X: fixed.Int26_6(g.x),
+ Y: fixed.Int26_6(g.y),
}
if !g.firstOnCurveValid {
diff --git a/vendor/golang.org/x/image/font/testdata/cmapTest.sfd b/vendor/golang.org/x/image/font/testdata/cmapTest.sfd
new file mode 100644
index 000000000..34c7cd659
--- /dev/null
+++ b/vendor/golang.org/x/image/font/testdata/cmapTest.sfd
@@ -0,0 +1,265 @@
+SplineFontDB: 3.0
+FontName: cmapTest
+FullName: cmapTest
+FamilyName: cmapTest
+Weight: Regular
+Copyright: Copyright 2016 The Go Authors. All rights reserved.\nUse of this font is governed by a BSD-style license that can be found at https://golang.org/LICENSE.
+Version: 001.000
+ItalicAngle: -11.25
+UnderlinePosition: -204
+UnderlineWidth: 102
+Ascent: 1638
+Descent: 410
+LayerCount: 2
+Layer: 0 1 "Back" 1
+Layer: 1 1 "Fore" 0
+XUID: [1021 367 888937226 7862908]
+FSType: 8
+OS2Version: 0
+OS2_WeightWidthSlopeOnly: 0
+OS2_UseTypoMetrics: 1
+CreationTime: 1484386143
+ModificationTime: 1486021330
+PfmFamily: 17
+TTFWeight: 400
+TTFWidth: 5
+LineGap: 184
+VLineGap: 0
+OS2TypoAscent: 0
+OS2TypoAOffset: 1
+OS2TypoDescent: 0
+OS2TypoDOffset: 1
+OS2TypoLinegap: 184
+OS2WinAscent: 0
+OS2WinAOffset: 1
+OS2WinDescent: 0
+OS2WinDOffset: 1
+HheadAscent: 0
+HheadAOffset: 1
+HheadDescent: 0
+HheadDOffset: 1
+OS2Vendor: 'PfEd'
+MarkAttachClasses: 1
+DEI: 91125
+LangName: 1033
+Encoding: UnicodeFull
+UnicodeInterp: none
+NameList: Adobe Glyph List
+DisplaySize: -24
+AntiAlias: 1
+FitToEm: 1
+WinInfo: 126976 32 23
+BeginPrivate: 0
+EndPrivate
+TeXData: 1 0 0 346030 173015 115343 0 -1048576 115343 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144
+BeginChars: 1114112 13
+
+StartChar: zero
+Encoding: 48 48 0
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: one
+Encoding: 49 49 1
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: two
+Encoding: 50 50 2
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: A
+Encoding: 65 65 3
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: uni4E2D
+Encoding: 20013 20013 4
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: u1F0A1
+Encoding: 127137 127137 5
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: ydieresis
+Encoding: 255 255 6
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: Amacron
+Encoding: 256 256 7
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: amacron
+Encoding: 257 257 8
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: B
+Encoding: 66 66 9
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: a
+Encoding: 97 97 10
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: u1F0B1
+Encoding: 127153 127153 11
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+
+StartChar: u1F0B2
+Encoding: 127154 127154 12
+Width: 800
+VWidth: 0
+Flags: W
+LayerCount: 2
+Fore
+SplineSet
+0 0 m 29,0,-1
+ 400 800 l 25,1,-1
+ 800 0 l 25,2,-1
+ 0 0 l 29,0,-1
+EndSplineSet
+Validated: 1
+EndChar
+EndChars
+EndSplineFont
diff --git a/vendor/golang.org/x/image/font/testdata/cmapTest.ttf b/vendor/golang.org/x/image/font/testdata/cmapTest.ttf
new file mode 100644
index 000000000..ebe6be200
--- /dev/null
+++ b/vendor/golang.org/x/image/font/testdata/cmapTest.ttf
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-down-ab.png b/vendor/golang.org/x/image/testdata/go-turns-two-down-ab.png
index 317c3afa1..ed5a2f6b2 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-down-ab.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-down-ab.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-down-bl.png b/vendor/golang.org/x/image/testdata/go-turns-two-down-bl.png
index 597d3628d..5c8b6529e 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-down-bl.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-down-bl.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-down-cr.png b/vendor/golang.org/x/image/testdata/go-turns-two-down-cr.png
index ad1c20a2f..633354d52 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-down-cr.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-down-cr.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-down-nn.png b/vendor/golang.org/x/image/testdata/go-turns-two-down-nn.png
index 166841a76..1debc306a 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-down-nn.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-down-nn.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-rotate-ab.png b/vendor/golang.org/x/image/testdata/go-turns-two-rotate-ab.png
index 04fceaa77..a3703a92a 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-rotate-ab.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-rotate-ab.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-rotate-bl.png b/vendor/golang.org/x/image/testdata/go-turns-two-rotate-bl.png
index c8b717e22..23105b3bd 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-rotate-bl.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-rotate-bl.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-rotate-cr.png b/vendor/golang.org/x/image/testdata/go-turns-two-rotate-cr.png
index 7e5cd9f62..d8d9d21e9 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-rotate-cr.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-rotate-cr.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-rotate-nn.png b/vendor/golang.org/x/image/testdata/go-turns-two-rotate-nn.png
index 702c86352..a5ba2822f 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-rotate-nn.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-rotate-nn.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-up-ab.png b/vendor/golang.org/x/image/testdata/go-turns-two-up-ab.png
index 072446dc9..98e92e258 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-up-ab.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-up-ab.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-up-bl.png b/vendor/golang.org/x/image/testdata/go-turns-two-up-bl.png
index c1bf630f4..4a2323dd1 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-up-bl.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-up-bl.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-up-cr.png b/vendor/golang.org/x/image/testdata/go-turns-two-up-cr.png
index 0ac83002f..1d9603332 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-up-cr.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-up-cr.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/go-turns-two-up-nn.png b/vendor/golang.org/x/image/testdata/go-turns-two-up-nn.png
index eb63cb91e..93a2806a3 100644
--- a/vendor/golang.org/x/image/testdata/go-turns-two-up-nn.png
+++ b/vendor/golang.org/x/image/testdata/go-turns-two-up-nn.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/tux-rotate-ab.png b/vendor/golang.org/x/image/testdata/tux-rotate-ab.png
index 181966cae..d604ec912 100644
--- a/vendor/golang.org/x/image/testdata/tux-rotate-ab.png
+++ b/vendor/golang.org/x/image/testdata/tux-rotate-ab.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/tux-rotate-bl.png b/vendor/golang.org/x/image/testdata/tux-rotate-bl.png
index af3f4b0d5..85b860282 100644
--- a/vendor/golang.org/x/image/testdata/tux-rotate-bl.png
+++ b/vendor/golang.org/x/image/testdata/tux-rotate-bl.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/tux-rotate-cr.png b/vendor/golang.org/x/image/testdata/tux-rotate-cr.png
index e5cff31f1..dbc42ab52 100644
--- a/vendor/golang.org/x/image/testdata/tux-rotate-cr.png
+++ b/vendor/golang.org/x/image/testdata/tux-rotate-cr.png
Binary files differ
diff --git a/vendor/golang.org/x/image/testdata/tux-rotate-nn.png b/vendor/golang.org/x/image/testdata/tux-rotate-nn.png
index c775c61dc..0d40c0d95 100644
--- a/vendor/golang.org/x/image/testdata/tux-rotate-nn.png
+++ b/vendor/golang.org/x/image/testdata/tux-rotate-nn.png
Binary files differ
diff --git a/vendor/golang.org/x/net/bpf/vm_bpf_test.go b/vendor/golang.org/x/net/bpf/vm_bpf_test.go
index 426362361..76dd970e6 100644
--- a/vendor/golang.org/x/net/bpf/vm_bpf_test.go
+++ b/vendor/golang.org/x/net/bpf/vm_bpf_test.go
@@ -33,7 +33,7 @@ func canUseOSVM() bool {
}
// All BPF tests against both the Go VM and OS VM are assumed to
-// be used with a UDP socket. As a result, the entire contents
+// be used with a UDP socket. As a result, the entire contents
// of a UDP datagram is sent through the BPF program, but only
// the body after the UDP header will ever be returned in output.
@@ -85,7 +85,7 @@ func (mvm *multiVirtualMachine) Run(in []byte) (int, error) {
}
// All tests have a UDP header as part of input, because the OS VM
- // packets always will. For the Go VM, this output is trimmed before
+ // packets always will. For the Go VM, this output is trimmed before
// being sent back to tests.
goOut, goErr := mvm.goVM.Run(in)
if goOut >= udpHeaderLen {
@@ -149,6 +149,9 @@ func testOSVM(t *testing.T, filter []bpf.Instruction) (virtualMachine, func()) {
p := ipv4.NewPacketConn(l)
if err = p.SetBPF(prog); err != nil {
+ if err.Error() == "operation not supported" { // TODO: gross. remove once 19051 fixed.
+ t.Skip("Skipping until Issue 19051 is fixed.")
+ }
t.Fatalf("failed to attach BPF program to listener: %v", err)
}
diff --git a/vendor/golang.org/x/net/context/context.go b/vendor/golang.org/x/net/context/context.go
index 134654cf7..f143ed6a1 100644
--- a/vendor/golang.org/x/net/context/context.go
+++ b/vendor/golang.org/x/net/context/context.go
@@ -7,7 +7,7 @@
// and between processes.
//
// Incoming requests to a server should create a Context, and outgoing calls to
-// servers should accept a Context. The chain of function calls between must
+// servers should accept a Context. The chain of function calls between must
// propagate the Context, optionally replacing it with a modified copy created
// using WithDeadline, WithTimeout, WithCancel, or WithValue.
//
@@ -16,14 +16,14 @@
// propagation:
//
// Do not store Contexts inside a struct type; instead, pass a Context
-// explicitly to each function that needs it. The Context should be the first
+// explicitly to each function that needs it. The Context should be the first
// parameter, typically named ctx:
//
// func DoSomething(ctx context.Context, arg Arg) error {
// // ... use ctx ...
// }
//
-// Do not pass a nil Context, even if a function permits it. Pass context.TODO
+// Do not pass a nil Context, even if a function permits it. Pass context.TODO
// if you are unsure about which Context to use.
//
// Use context Values only for request-scoped data that transits processes and
@@ -44,13 +44,13 @@ import "time"
// Context's methods may be called by multiple goroutines simultaneously.
type Context interface {
// Deadline returns the time when work done on behalf of this context
- // should be canceled. Deadline returns ok==false when no deadline is
- // set. Successive calls to Deadline return the same results.
+ // should be canceled. Deadline returns ok==false when no deadline is
+ // set. Successive calls to Deadline return the same results.
Deadline() (deadline time.Time, ok bool)
// Done returns a channel that's closed when work done on behalf of this
- // context should be canceled. Done may return nil if this context can
- // never be canceled. Successive calls to Done return the same value.
+ // context should be canceled. Done may return nil if this context can
+ // never be canceled. Successive calls to Done return the same value.
//
// WithCancel arranges for Done to be closed when cancel is called;
// WithDeadline arranges for Done to be closed when the deadline
@@ -79,24 +79,24 @@ type Context interface {
// a Done channel for cancelation.
Done() <-chan struct{}
- // Err returns a non-nil error value after Done is closed. Err returns
+ // Err returns a non-nil error value after Done is closed. Err returns
// Canceled if the context was canceled or DeadlineExceeded if the
- // context's deadline passed. No other values for Err are defined.
+ // context's deadline passed. No other values for Err are defined.
// After Done is closed, successive calls to Err return the same value.
Err() error
// Value returns the value associated with this context for key, or nil
- // if no value is associated with key. Successive calls to Value with
+ // if no value is associated with key. Successive calls to Value with
// the same key returns the same result.
//
// Use context values only for request-scoped data that transits
// processes and API boundaries, not for passing optional parameters to
// functions.
//
- // A key identifies a specific value in a Context. Functions that wish
+ // A key identifies a specific value in a Context. Functions that wish
// to store values in Context typically allocate a key in a global
// variable then use that key as the argument to context.WithValue and
- // Context.Value. A key can be any type that supports equality;
+ // Context.Value. A key can be any type that supports equality;
// packages should define keys as an unexported type to avoid
// collisions.
//
@@ -115,7 +115,7 @@ type Context interface {
// // This prevents collisions with keys defined in other packages.
// type key int
//
- // // userKey is the key for user.User values in Contexts. It is
+ // // userKey is the key for user.User values in Contexts. It is
// // unexported; clients use user.NewContext and user.FromContext
// // instead of using this key directly.
// var userKey key = 0
@@ -134,14 +134,14 @@ type Context interface {
}
// Background returns a non-nil, empty Context. It is never canceled, has no
-// values, and has no deadline. It is typically used by the main function,
+// values, and has no deadline. It is typically used by the main function,
// initialization, and tests, and as the top-level Context for incoming
// requests.
func Background() Context {
return background
}
-// TODO returns a non-nil, empty Context. Code should use context.TODO when
+// TODO returns a non-nil, empty Context. Code should use context.TODO when
// it's unclear which Context to use or it is not yet available (because the
// surrounding function has not yet been extended to accept a Context
// parameter). TODO is recognized by static analysis tools that determine
diff --git a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go
index 9f0f90f1b..72411b1b6 100644
--- a/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go
+++ b/vendor/golang.org/x/net/context/ctxhttp/ctxhttp_17_test.go
@@ -19,6 +19,7 @@ func TestGo17Context(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "ok")
}))
+ defer ts.Close()
ctx := context.Background()
resp, err := Get(ctx, http.DefaultClient, ts.URL)
if resp == nil || err != nil {
diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go
index f8cda19ad..d20f52b7d 100644
--- a/vendor/golang.org/x/net/context/go17.go
+++ b/vendor/golang.org/x/net/context/go17.go
@@ -35,8 +35,8 @@ func WithCancel(parent Context) (ctx Context, cancel CancelFunc) {
}
// WithDeadline returns a copy of the parent context with the deadline adjusted
-// to be no later than d. If the parent's deadline is already earlier than d,
-// WithDeadline(parent, d) is semantically equivalent to parent. The returned
+// to be no later than d. If the parent's deadline is already earlier than d,
+// WithDeadline(parent, d) is semantically equivalent to parent. The returned
// context's Done channel is closed when the deadline expires, when the returned
// cancel function is called, or when the parent context's Done channel is
// closed, whichever happens first.
diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go
index 5a30acabd..0f35592df 100644
--- a/vendor/golang.org/x/net/context/pre_go17.go
+++ b/vendor/golang.org/x/net/context/pre_go17.go
@@ -13,7 +13,7 @@ import (
"time"
)
-// An emptyCtx is never canceled, has no values, and has no deadline. It is not
+// An emptyCtx is never canceled, has no values, and has no deadline. It is not
// struct{}, since vars of this type must have distinct addresses.
type emptyCtx int
@@ -104,7 +104,7 @@ func propagateCancel(parent Context, child canceler) {
}
// parentCancelCtx follows a chain of parent references until it finds a
-// *cancelCtx. This function understands how each of the concrete types in this
+// *cancelCtx. This function understands how each of the concrete types in this
// package represents its parent.
func parentCancelCtx(parent Context) (*cancelCtx, bool) {
for {
@@ -134,14 +134,14 @@ func removeChild(parent Context, child canceler) {
p.mu.Unlock()
}
-// A canceler is a context type that can be canceled directly. The
+// A canceler is a context type that can be canceled directly. The
// implementations are *cancelCtx and *timerCtx.
type canceler interface {
cancel(removeFromParent bool, err error)
Done() <-chan struct{}
}
-// A cancelCtx can be canceled. When canceled, it also cancels any children
+// A cancelCtx can be canceled. When canceled, it also cancels any children
// that implement canceler.
type cancelCtx struct {
Context
@@ -193,8 +193,8 @@ func (c *cancelCtx) cancel(removeFromParent bool, err error) {
}
// WithDeadline returns a copy of the parent context with the deadline adjusted
-// to be no later than d. If the parent's deadline is already earlier than d,
-// WithDeadline(parent, d) is semantically equivalent to parent. The returned
+// to be no later than d. If the parent's deadline is already earlier than d,
+// WithDeadline(parent, d) is semantically equivalent to parent. The returned
// context's Done channel is closed when the deadline expires, when the returned
// cancel function is called, or when the parent context's Done channel is
// closed, whichever happens first.
@@ -226,8 +226,8 @@ func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {
return c, func() { c.cancel(true, Canceled) }
}
-// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to
-// implement Done and Err. It implements cancel by stopping its timer then
+// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to
+// implement Done and Err. It implements cancel by stopping its timer then
// delegating to cancelCtx.cancel.
type timerCtx struct {
*cancelCtx
@@ -281,7 +281,7 @@ func WithValue(parent Context, key interface{}, val interface{}) Context {
return &valueCtx{parent, key, val}
}
-// A valueCtx carries a key-value pair. It implements Value for that key and
+// A valueCtx carries a key-value pair. It implements Value for that key and
// delegates all other calls to the embedded Context.
type valueCtx struct {
Context
diff --git a/vendor/golang.org/x/net/dns/dnsmessage/message.go b/vendor/golang.org/x/net/dns/dnsmessage/message.go
new file mode 100644
index 000000000..da43b0ba4
--- /dev/null
+++ b/vendor/golang.org/x/net/dns/dnsmessage/message.go
@@ -0,0 +1,1418 @@
+// Copyright 2009 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 dnsmessage provides a mostly RFC 1035 compliant implementation of
+// DNS message packing and unpacking.
+//
+// This implementation is designed to minimize heap allocations and avoid
+// unnecessary packing and unpacking as much as possible.
+package dnsmessage
+
+import (
+ "errors"
+)
+
+// Packet formats
+
+// A Type is a type of DNS request and response.
+type Type uint16
+
+// A Class is a type of network.
+type Class uint16
+
+// An OpCode is a DNS operation code.
+type OpCode uint16
+
+// An RCode is a DNS response status code.
+type RCode uint16
+
+// Wire constants.
+const (
+ // ResourceHeader.Type and Question.Type
+ TypeA Type = 1
+ TypeNS Type = 2
+ TypeCNAME Type = 5
+ TypeSOA Type = 6
+ TypePTR Type = 12
+ TypeMX Type = 15
+ TypeTXT Type = 16
+ TypeAAAA Type = 28
+ TypeSRV Type = 33
+
+ // Question.Type
+ TypeWKS Type = 11
+ TypeHINFO Type = 13
+ TypeMINFO Type = 14
+ TypeAXFR Type = 252
+ TypeALL Type = 255
+
+ // ResourceHeader.Class and Question.Class
+ ClassINET Class = 1
+ ClassCSNET Class = 2
+ ClassCHAOS Class = 3
+ ClassHESIOD Class = 4
+
+ // Question.Class
+ ClassANY Class = 255
+
+ // Message.Rcode
+ RCodeSuccess RCode = 0
+ RCodeFormatError RCode = 1
+ RCodeServerFailure RCode = 2
+ RCodeNameError RCode = 3
+ RCodeNotImplemented RCode = 4
+ RCodeRefused RCode = 5
+)
+
+var (
+ // ErrNotStarted indicates that the prerequisite information isn't
+ // available yet because the previous records haven't been appropriately
+ // parsed or skipped.
+ ErrNotStarted = errors.New("parsing of this type isn't available yet")
+
+ // ErrSectionDone indicated that all records in the section have been
+ // parsed.
+ ErrSectionDone = errors.New("parsing of this section has completed")
+
+ errBaseLen = errors.New("insufficient data for base length type")
+ errCalcLen = errors.New("insufficient data for calculated length type")
+ errReserved = errors.New("segment prefix is reserved")
+ errTooManyPtr = errors.New("too many pointers (>10)")
+ errInvalidPtr = errors.New("invalid pointer")
+ errResourceLen = errors.New("insufficient data for resource body length")
+ errSegTooLong = errors.New("segment length too long")
+ errZeroSegLen = errors.New("zero length segment")
+ errResTooLong = errors.New("resource length too long")
+ errTooManyQuestions = errors.New("too many Questions to pack (>65535)")
+ errTooManyAnswers = errors.New("too many Answers to pack (>65535)")
+ errTooManyAuthorities = errors.New("too many Authorities to pack (>65535)")
+ errTooManyAdditionals = errors.New("too many Additionals to pack (>65535)")
+)
+
+type nestedError struct {
+ // s is the current level's error message.
+ s string
+
+ // err is the nested error.
+ err error
+}
+
+// nestedError implements error.Error.
+func (e *nestedError) Error() string {
+ return e.s + ": " + e.err.Error()
+}
+
+// Header is a representation of a DNS message header.
+type Header struct {
+ ID uint16
+ Response bool
+ OpCode OpCode
+ Authoritative bool
+ Truncated bool
+ RecursionDesired bool
+ RecursionAvailable bool
+ RCode RCode
+}
+
+func (m *Header) pack() (id uint16, bits uint16) {
+ id = m.ID
+ bits = uint16(m.OpCode)<<11 | uint16(m.RCode)
+ if m.RecursionAvailable {
+ bits |= headerBitRA
+ }
+ if m.RecursionDesired {
+ bits |= headerBitRD
+ }
+ if m.Truncated {
+ bits |= headerBitTC
+ }
+ if m.Authoritative {
+ bits |= headerBitAA
+ }
+ if m.Response {
+ bits |= headerBitQR
+ }
+ return
+}
+
+// Message is a representation of a DNS message.
+type Message struct {
+ Header
+ Questions []Question
+ Answers []Resource
+ Authorities []Resource
+ Additionals []Resource
+}
+
+type section uint8
+
+const (
+ sectionHeader section = iota
+ sectionQuestions
+ sectionAnswers
+ sectionAuthorities
+ sectionAdditionals
+ sectionDone
+
+ headerBitQR = 1 << 15 // query/response (response=1)
+ headerBitAA = 1 << 10 // authoritative
+ headerBitTC = 1 << 9 // truncated
+ headerBitRD = 1 << 8 // recursion desired
+ headerBitRA = 1 << 7 // recursion available
+)
+
+var sectionNames = map[section]string{
+ sectionHeader: "header",
+ sectionQuestions: "Question",
+ sectionAnswers: "Answer",
+ sectionAuthorities: "Authority",
+ sectionAdditionals: "Additional",
+}
+
+// header is the wire format for a DNS message header.
+type header struct {
+ id uint16
+ bits uint16
+ questions uint16
+ answers uint16
+ authorities uint16
+ additionals uint16
+}
+
+func (h *header) count(sec section) uint16 {
+ switch sec {
+ case sectionQuestions:
+ return h.questions
+ case sectionAnswers:
+ return h.answers
+ case sectionAuthorities:
+ return h.authorities
+ case sectionAdditionals:
+ return h.additionals
+ }
+ return 0
+}
+
+func (h *header) pack(msg []byte) []byte {
+ msg = packUint16(msg, h.id)
+ msg = packUint16(msg, h.bits)
+ msg = packUint16(msg, h.questions)
+ msg = packUint16(msg, h.answers)
+ msg = packUint16(msg, h.authorities)
+ return packUint16(msg, h.additionals)
+}
+
+func (h *header) unpack(msg []byte, off int) (int, error) {
+ newOff := off
+ var err error
+ if h.id, newOff, err = unpackUint16(msg, newOff); err != nil {
+ return off, &nestedError{"id", err}
+ }
+ if h.bits, newOff, err = unpackUint16(msg, newOff); err != nil {
+ return off, &nestedError{"bits", err}
+ }
+ if h.questions, newOff, err = unpackUint16(msg, newOff); err != nil {
+ return off, &nestedError{"questions", err}
+ }
+ if h.answers, newOff, err = unpackUint16(msg, newOff); err != nil {
+ return off, &nestedError{"answers", err}
+ }
+ if h.authorities, newOff, err = unpackUint16(msg, newOff); err != nil {
+ return off, &nestedError{"authorities", err}
+ }
+ if h.additionals, newOff, err = unpackUint16(msg, newOff); err != nil {
+ return off, &nestedError{"additionals", err}
+ }
+ return newOff, nil
+}
+
+func (h *header) header() Header {
+ return Header{
+ ID: h.id,
+ Response: (h.bits & headerBitQR) != 0,
+ OpCode: OpCode(h.bits>>11) & 0xF,
+ Authoritative: (h.bits & headerBitAA) != 0,
+ Truncated: (h.bits & headerBitTC) != 0,
+ RecursionDesired: (h.bits & headerBitRD) != 0,
+ RecursionAvailable: (h.bits & headerBitRA) != 0,
+ RCode: RCode(h.bits & 0xF),
+ }
+}
+
+// A Resource is a DNS resource record.
+type Resource interface {
+ // Header return's the Resource's ResourceHeader.
+ Header() *ResourceHeader
+
+ // pack packs a Resource except for its header.
+ pack(msg []byte, compression map[string]int) ([]byte, error)
+
+ // realType returns the actual type of the Resource. This is used to
+ // fill in the header Type field.
+ realType() Type
+}
+
+func packResource(msg []byte, resource Resource, compression map[string]int) ([]byte, error) {
+ oldMsg := msg
+ resource.Header().Type = resource.realType()
+ msg, length, err := resource.Header().pack(msg, compression)
+ if err != nil {
+ return msg, &nestedError{"ResourceHeader", err}
+ }
+ preLen := len(msg)
+ msg, err = resource.pack(msg, compression)
+ if err != nil {
+ return msg, &nestedError{"content", err}
+ }
+ conLen := len(msg) - preLen
+ if conLen > int(^uint16(0)) {
+ return oldMsg, errResTooLong
+ }
+ // Fill in the length now that we know how long the content is.
+ packUint16(length[:0], uint16(conLen))
+ resource.Header().Length = uint16(conLen)
+ return msg, nil
+}
+
+// A Parser allows incrementally parsing a DNS message.
+//
+// When parsing is started, the Header is parsed. Next, each Question can be
+// either parsed or skipped. Alternatively, all Questions can be skipped at
+// once. When all Questions have been parsed, attempting to parse Questions
+// will return (nil, nil) and attempting to skip Questions will return
+// (true, nil). After all Questions have been either parsed or skipped, all
+// Answers, Authorities and Additionals can be either parsed or skipped in the
+// same way, and each type of Resource must be fully parsed or skipped before
+// proceeding to the next type of Resource.
+//
+// Note that there is no requirement to fully skip or parse the message.
+type Parser struct {
+ msg []byte
+ header header
+
+ section section
+ off int
+ index int
+ resHeaderValid bool
+ resHeader ResourceHeader
+}
+
+// Start parses the header and enables the parsing of Questions.
+func (p *Parser) Start(msg []byte) (Header, error) {
+ if p.msg != nil {
+ *p = Parser{}
+ }
+ p.msg = msg
+ var err error
+ if p.off, err = p.header.unpack(msg, 0); err != nil {
+ return Header{}, &nestedError{"unpacking header", err}
+ }
+ p.section = sectionQuestions
+ return p.header.header(), nil
+}
+
+func (p *Parser) checkAdvance(sec section) error {
+ if p.section < sec {
+ return ErrNotStarted
+ }
+ if p.section > sec {
+ return ErrSectionDone
+ }
+ p.resHeaderValid = false
+ if p.index == int(p.header.count(sec)) {
+ p.index = 0
+ p.section++
+ return ErrSectionDone
+ }
+ return nil
+}
+
+func (p *Parser) resource(sec section) (Resource, error) {
+ var r Resource
+ hdr, err := p.resourceHeader(sec)
+ if err != nil {
+ return r, err
+ }
+ p.resHeaderValid = false
+ r, p.off, err = unpackResource(p.msg, p.off, hdr)
+ if err != nil {
+ return nil, &nestedError{"unpacking " + sectionNames[sec], err}
+ }
+ p.index++
+ return r, nil
+}
+
+func (p *Parser) resourceHeader(sec section) (ResourceHeader, error) {
+ if p.resHeaderValid {
+ return p.resHeader, nil
+ }
+ if err := p.checkAdvance(sec); err != nil {
+ return ResourceHeader{}, err
+ }
+ var hdr ResourceHeader
+ off, err := hdr.unpack(p.msg, p.off)
+ if err != nil {
+ return ResourceHeader{}, err
+ }
+ p.resHeaderValid = true
+ p.resHeader = hdr
+ p.off = off
+ return hdr, nil
+}
+
+func (p *Parser) skipResource(sec section) error {
+ if p.resHeaderValid {
+ newOff := p.off + int(p.resHeader.Length)
+ if newOff > len(p.msg) {
+ return errResourceLen
+ }
+ p.off = newOff
+ p.resHeaderValid = false
+ p.index++
+ return nil
+ }
+ if err := p.checkAdvance(sec); err != nil {
+ return err
+ }
+ var err error
+ p.off, err = skipResource(p.msg, p.off)
+ if err != nil {
+ return &nestedError{"skipping: " + sectionNames[sec], err}
+ }
+ p.index++
+ return nil
+}
+
+// Question parses a single Question.
+func (p *Parser) Question() (Question, error) {
+ if err := p.checkAdvance(sectionQuestions); err != nil {
+ return Question{}, err
+ }
+ name, off, err := unpackName(p.msg, p.off)
+ if err != nil {
+ return Question{}, &nestedError{"unpacking Question.Name", err}
+ }
+ typ, off, err := unpackType(p.msg, off)
+ if err != nil {
+ return Question{}, &nestedError{"unpacking Question.Type", err}
+ }
+ class, off, err := unpackClass(p.msg, off)
+ if err != nil {
+ return Question{}, &nestedError{"unpacking Question.Class", err}
+ }
+ p.off = off
+ p.index++
+ return Question{name, typ, class}, nil
+}
+
+// AllQuestions parses all Questions.
+func (p *Parser) AllQuestions() ([]Question, error) {
+ qs := make([]Question, 0, p.header.questions)
+ for {
+ q, err := p.Question()
+ if err == ErrSectionDone {
+ return qs, nil
+ }
+ if err != nil {
+ return nil, err
+ }
+ qs = append(qs, q)
+ }
+}
+
+// SkipQuestion skips a single Question.
+func (p *Parser) SkipQuestion() error {
+ if err := p.checkAdvance(sectionQuestions); err != nil {
+ return err
+ }
+ off, err := skipName(p.msg, p.off)
+ if err != nil {
+ return &nestedError{"skipping Question Name", err}
+ }
+ if off, err = skipType(p.msg, off); err != nil {
+ return &nestedError{"skipping Question Type", err}
+ }
+ if off, err = skipClass(p.msg, off); err != nil {
+ return &nestedError{"skipping Question Class", err}
+ }
+ p.off = off
+ p.index++
+ return nil
+}
+
+// SkipAllQuestions skips all Questions.
+func (p *Parser) SkipAllQuestions() error {
+ for {
+ if err := p.SkipQuestion(); err == ErrSectionDone {
+ return nil
+ } else if err != nil {
+ return err
+ }
+ }
+}
+
+// AnswerHeader parses a single Answer ResourceHeader.
+func (p *Parser) AnswerHeader() (ResourceHeader, error) {
+ return p.resourceHeader(sectionAnswers)
+}
+
+// Answer parses a single Answer Resource.
+func (p *Parser) Answer() (Resource, error) {
+ return p.resource(sectionAnswers)
+}
+
+// AllAnswers parses all Answer Resources.
+func (p *Parser) AllAnswers() ([]Resource, error) {
+ as := make([]Resource, 0, p.header.answers)
+ for {
+ a, err := p.Answer()
+ if err == ErrSectionDone {
+ return as, nil
+ }
+ if err != nil {
+ return nil, err
+ }
+ as = append(as, a)
+ }
+}
+
+// SkipAnswer skips a single Answer Resource.
+func (p *Parser) SkipAnswer() error {
+ return p.skipResource(sectionAnswers)
+}
+
+// SkipAllAnswers skips all Answer Resources.
+func (p *Parser) SkipAllAnswers() error {
+ for {
+ if err := p.SkipAnswer(); err == ErrSectionDone {
+ return nil
+ } else if err != nil {
+ return err
+ }
+ }
+}
+
+// AuthorityHeader parses a single Authority ResourceHeader.
+func (p *Parser) AuthorityHeader() (ResourceHeader, error) {
+ return p.resourceHeader(sectionAuthorities)
+}
+
+// Authority parses a single Authority Resource.
+func (p *Parser) Authority() (Resource, error) {
+ return p.resource(sectionAuthorities)
+}
+
+// AllAuthorities parses all Authority Resources.
+func (p *Parser) AllAuthorities() ([]Resource, error) {
+ as := make([]Resource, 0, p.header.authorities)
+ for {
+ a, err := p.Authority()
+ if err == ErrSectionDone {
+ return as, nil
+ }
+ if err != nil {
+ return nil, err
+ }
+ as = append(as, a)
+ }
+}
+
+// SkipAuthority skips a single Authority Resource.
+func (p *Parser) SkipAuthority() error {
+ return p.skipResource(sectionAuthorities)
+}
+
+// SkipAllAuthorities skips all Authority Resources.
+func (p *Parser) SkipAllAuthorities() error {
+ for {
+ if err := p.SkipAuthority(); err == ErrSectionDone {
+ return nil
+ } else if err != nil {
+ return err
+ }
+ }
+}
+
+// AdditionalHeader parses a single Additional ResourceHeader.
+func (p *Parser) AdditionalHeader() (ResourceHeader, error) {
+ return p.resourceHeader(sectionAdditionals)
+}
+
+// Additional parses a single Additional Resource.
+func (p *Parser) Additional() (Resource, error) {
+ return p.resource(sectionAdditionals)
+}
+
+// AllAdditionals parses all Additional Resources.
+func (p *Parser) AllAdditionals() ([]Resource, error) {
+ as := make([]Resource, 0, p.header.additionals)
+ for {
+ a, err := p.Additional()
+ if err == ErrSectionDone {
+ return as, nil
+ }
+ if err != nil {
+ return nil, err
+ }
+ as = append(as, a)
+ }
+}
+
+// SkipAdditional skips a single Additional Resource.
+func (p *Parser) SkipAdditional() error {
+ return p.skipResource(sectionAdditionals)
+}
+
+// SkipAllAdditionals skips all Additional Resources.
+func (p *Parser) SkipAllAdditionals() error {
+ for {
+ if err := p.SkipAdditional(); err == ErrSectionDone {
+ return nil
+ } else if err != nil {
+ return err
+ }
+ }
+}
+
+// Unpack parses a full Message.
+func (m *Message) Unpack(msg []byte) error {
+ var p Parser
+ var err error
+ if m.Header, err = p.Start(msg); err != nil {
+ return err
+ }
+ if m.Questions, err = p.AllQuestions(); err != nil {
+ return err
+ }
+ if m.Answers, err = p.AllAnswers(); err != nil {
+ return err
+ }
+ if m.Authorities, err = p.AllAuthorities(); err != nil {
+ return err
+ }
+ if m.Additionals, err = p.AllAdditionals(); err != nil {
+ return err
+ }
+ return nil
+}
+
+// Pack packs a full Message.
+func (m *Message) Pack() ([]byte, error) {
+ // Validate the lengths. It is very unlikely that anyone will try to
+ // pack more than 65535 of any particular type, but it is possible and
+ // we should fail gracefully.
+ if len(m.Questions) > int(^uint16(0)) {
+ return nil, errTooManyQuestions
+ }
+ if len(m.Answers) > int(^uint16(0)) {
+ return nil, errTooManyAnswers
+ }
+ if len(m.Authorities) > int(^uint16(0)) {
+ return nil, errTooManyAuthorities
+ }
+ if len(m.Additionals) > int(^uint16(0)) {
+ return nil, errTooManyAdditionals
+ }
+
+ var h header
+ h.id, h.bits = m.Header.pack()
+
+ h.questions = uint16(len(m.Questions))
+ h.answers = uint16(len(m.Answers))
+ h.authorities = uint16(len(m.Authorities))
+ h.additionals = uint16(len(m.Additionals))
+
+ // The starting capacity doesn't matter too much, but most DNS responses
+ // Will be <= 512 bytes as it is the limit for DNS over UDP.
+ msg := make([]byte, 0, 512)
+
+ msg = h.pack(msg)
+
+ // RFC 1035 allows (but does not require) compression for packing. RFC
+ // 1035 requires unpacking implementations to support compression, so
+ // unconditionally enabling it is fine.
+ //
+ // DNS lookups are typically done over UDP, and RFC 1035 states that UDP
+ // DNS packets can be a maximum of 512 bytes long. Without compression,
+ // many DNS response packets are over this limit, so enabling
+ // compression will help ensure compliance.
+ compression := map[string]int{}
+
+ for _, q := range m.Questions {
+ var err error
+ msg, err = q.pack(msg, compression)
+ if err != nil {
+ return nil, &nestedError{"packing Question", err}
+ }
+ }
+ for _, a := range m.Answers {
+ var err error
+ msg, err = packResource(msg, a, compression)
+ if err != nil {
+ return nil, &nestedError{"packing Answer", err}
+ }
+ }
+ for _, a := range m.Authorities {
+ var err error
+ msg, err = packResource(msg, a, compression)
+ if err != nil {
+ return nil, &nestedError{"packing Authority", err}
+ }
+ }
+ for _, a := range m.Additionals {
+ var err error
+ msg, err = packResource(msg, a, compression)
+ if err != nil {
+ return nil, &nestedError{"packing Additional", err}
+ }
+ }
+
+ return msg, nil
+}
+
+// An ResourceHeader is the header of a DNS resource record. There are
+// many types of DNS resource records, but they all share the same header.
+type ResourceHeader struct {
+ // Name is the domain name for which this resource record pertains.
+ Name string
+
+ // Type is the type of DNS resource record.
+ //
+ // This field will be set automatically during packing.
+ Type Type
+
+ // Class is the class of network to which this DNS resource record
+ // pertains.
+ Class Class
+
+ // TTL is the length of time (measured in seconds) which this resource
+ // record is valid for (time to live). All Resources in a set should
+ // have the same TTL (RFC 2181 Section 5.2).
+ TTL uint32
+
+ // Length is the length of data in the resource record after the header.
+ //
+ // This field will be set automatically during packing.
+ Length uint16
+}
+
+// Header implements Resource.Header.
+func (h *ResourceHeader) Header() *ResourceHeader {
+ return h
+}
+
+// pack packs all of the fields in a ResourceHeader except for the length. The
+// length bytes are returned as a slice so they can be filled in after the rest
+// of the Resource has been packed.
+func (h *ResourceHeader) pack(oldMsg []byte, compression map[string]int) (msg []byte, length []byte, err error) {
+ msg = oldMsg
+ if msg, err = packName(msg, h.Name, compression); err != nil {
+ return oldMsg, nil, &nestedError{"Name", err}
+ }
+ msg = packType(msg, h.Type)
+ msg = packClass(msg, h.Class)
+ msg = packUint32(msg, h.TTL)
+ lenBegin := len(msg)
+ msg = packUint16(msg, h.Length)
+ return msg, msg[lenBegin:], nil
+}
+
+func (h *ResourceHeader) unpack(msg []byte, off int) (int, error) {
+ newOff := off
+ var err error
+ if h.Name, newOff, err = unpackName(msg, newOff); err != nil {
+ return off, &nestedError{"Name", err}
+ }
+ if h.Type, newOff, err = unpackType(msg, newOff); err != nil {
+ return off, &nestedError{"Type", err}
+ }
+ if h.Class, newOff, err = unpackClass(msg, newOff); err != nil {
+ return off, &nestedError{"Class", err}
+ }
+ if h.TTL, newOff, err = unpackUint32(msg, newOff); err != nil {
+ return off, &nestedError{"TTL", err}
+ }
+ if h.Length, newOff, err = unpackUint16(msg, newOff); err != nil {
+ return off, &nestedError{"Length", err}
+ }
+ return newOff, nil
+}
+
+func skipResource(msg []byte, off int) (int, error) {
+ newOff, err := skipName(msg, off)
+ if err != nil {
+ return off, &nestedError{"Name", err}
+ }
+ if newOff, err = skipType(msg, newOff); err != nil {
+ return off, &nestedError{"Type", err}
+ }
+ if newOff, err = skipClass(msg, newOff); err != nil {
+ return off, &nestedError{"Class", err}
+ }
+ if newOff, err = skipUint32(msg, newOff); err != nil {
+ return off, &nestedError{"TTL", err}
+ }
+ length, newOff, err := unpackUint16(msg, newOff)
+ if err != nil {
+ return off, &nestedError{"Length", err}
+ }
+ if newOff += int(length); newOff > len(msg) {
+ return off, errResourceLen
+ }
+ return newOff, nil
+}
+
+func packUint16(msg []byte, field uint16) []byte {
+ return append(msg, byte(field>>8), byte(field))
+}
+
+func unpackUint16(msg []byte, off int) (uint16, int, error) {
+ if off+2 > len(msg) {
+ return 0, off, errBaseLen
+ }
+ return uint16(msg[off])<<8 | uint16(msg[off+1]), off + 2, nil
+}
+
+func skipUint16(msg []byte, off int) (int, error) {
+ if off+2 > len(msg) {
+ return off, errBaseLen
+ }
+ return off + 2, nil
+}
+
+func packType(msg []byte, field Type) []byte {
+ return packUint16(msg, uint16(field))
+}
+
+func unpackType(msg []byte, off int) (Type, int, error) {
+ t, o, err := unpackUint16(msg, off)
+ return Type(t), o, err
+}
+
+func skipType(msg []byte, off int) (int, error) {
+ return skipUint16(msg, off)
+}
+
+func packClass(msg []byte, field Class) []byte {
+ return packUint16(msg, uint16(field))
+}
+
+func unpackClass(msg []byte, off int) (Class, int, error) {
+ c, o, err := unpackUint16(msg, off)
+ return Class(c), o, err
+}
+
+func skipClass(msg []byte, off int) (int, error) {
+ return skipUint16(msg, off)
+}
+
+func packUint32(msg []byte, field uint32) []byte {
+ return append(
+ msg,
+ byte(field>>24),
+ byte(field>>16),
+ byte(field>>8),
+ byte(field),
+ )
+}
+
+func unpackUint32(msg []byte, off int) (uint32, int, error) {
+ if off+4 > len(msg) {
+ return 0, off, errBaseLen
+ }
+ v := uint32(msg[off])<<24 | uint32(msg[off+1])<<16 | uint32(msg[off+2])<<8 | uint32(msg[off+3])
+ return v, off + 4, nil
+}
+
+func skipUint32(msg []byte, off int) (int, error) {
+ if off+4 > len(msg) {
+ return off, errBaseLen
+ }
+ return off + 4, nil
+}
+
+func packText(msg []byte, field string) []byte {
+ for len(field) > 0 {
+ l := len(field)
+ if l > 255 {
+ l = 255
+ }
+ msg = append(msg, byte(l))
+ msg = append(msg, field[:l]...)
+ field = field[l:]
+ }
+ return msg
+}
+
+func unpackText(msg []byte, off int) (string, int, error) {
+ if off >= len(msg) {
+ return "", off, errBaseLen
+ }
+ beginOff := off + 1
+ endOff := beginOff + int(msg[off])
+ if endOff > len(msg) {
+ return "", off, errCalcLen
+ }
+ return string(msg[beginOff:endOff]), endOff, nil
+}
+
+func skipText(msg []byte, off int) (int, error) {
+ if off >= len(msg) {
+ return off, errBaseLen
+ }
+ endOff := off + 1 + int(msg[off])
+ if endOff > len(msg) {
+ return off, errCalcLen
+ }
+ return endOff, nil
+}
+
+func packBytes(msg []byte, field []byte) []byte {
+ return append(msg, field...)
+}
+
+func unpackBytes(msg []byte, off int, field []byte) (int, error) {
+ newOff := off + len(field)
+ if newOff > len(msg) {
+ return off, errBaseLen
+ }
+ copy(field, msg[off:newOff])
+ return newOff, nil
+}
+
+func skipBytes(msg []byte, off int, field []byte) (int, error) {
+ newOff := off + len(field)
+ if newOff > len(msg) {
+ return off, errBaseLen
+ }
+ return newOff, nil
+}
+
+// packName packs a domain name.
+//
+// Domain names are a sequence of counted strings split at the dots. They end
+// with a zero-length string. Compression can be used to reuse domain suffixes.
+//
+// The compression map will be updated with new domain suffixes. If compression
+// is nil, compression will not be used.
+func packName(msg []byte, name string, compression map[string]int) ([]byte, error) {
+ oldMsg := msg
+
+ // Add a trailing dot to canonicalize name.
+ if n := len(name); n == 0 || name[n-1] != '.' {
+ name += "."
+ }
+
+ // Allow root domain.
+ if name == "." {
+ return append(msg, 0), nil
+ }
+
+ // Emit sequence of counted strings, chopping at dots.
+ for i, begin := 0, 0; i < len(name); i++ {
+ // Check for the end of the segment.
+ if name[i] == '.' {
+ // The two most significant bits have special meaning.
+ // It isn't allowed for segments to be long enough to
+ // need them.
+ if i-begin >= 1<<6 {
+ return oldMsg, errSegTooLong
+ }
+
+ // Segments must have a non-zero length.
+ if i-begin == 0 {
+ return oldMsg, errZeroSegLen
+ }
+
+ msg = append(msg, byte(i-begin))
+
+ for j := begin; j < i; j++ {
+ msg = append(msg, name[j])
+ }
+
+ begin = i + 1
+ continue
+ }
+
+ // We can only compress domain suffixes starting with a new
+ // segment. A pointer is two bytes with the two most significant
+ // bits set to 1 to indicate that it is a pointer.
+ if (i == 0 || name[i-1] == '.') && compression != nil {
+ if ptr, ok := compression[name[i:]]; ok {
+ // Hit. Emit a pointer instead of the rest of
+ // the domain.
+ return append(msg, byte(ptr>>8|0xC0), byte(ptr)), nil
+ }
+
+ // Miss. Add the suffix to the compression table if the
+ // offset can be stored in the available 14 bytes.
+ if len(msg) <= int(^uint16(0)>>2) {
+ compression[name[i:]] = len(msg)
+ }
+ }
+ }
+ return append(msg, 0), nil
+}
+
+// unpackName unpacks a domain name.
+func unpackName(msg []byte, off int) (string, int, error) {
+ // currOff is the current working offset.
+ currOff := off
+
+ // newOff is the offset where the next record will start. Pointers lead
+ // to data that belongs to other names and thus doesn't count towards to
+ // the usage of this name.
+ newOff := off
+
+ // name is the domain name being unpacked.
+ name := make([]byte, 0, 255)
+
+ // ptr is the number of pointers followed.
+ var ptr int
+Loop:
+ for {
+ if currOff >= len(msg) {
+ return "", off, errBaseLen
+ }
+ c := int(msg[currOff])
+ currOff++
+ switch c & 0xC0 {
+ case 0x00: // String segment
+ if c == 0x00 {
+ // A zero length signals the end of the name.
+ break Loop
+ }
+ endOff := currOff + c
+ if endOff > len(msg) {
+ return "", off, errCalcLen
+ }
+ name = append(name, msg[currOff:endOff]...)
+ name = append(name, '.')
+ currOff = endOff
+ case 0xC0: // Pointer
+ if currOff >= len(msg) {
+ return "", off, errInvalidPtr
+ }
+ c1 := msg[currOff]
+ currOff++
+ if ptr == 0 {
+ newOff = currOff
+ }
+ // Don't follow too many pointers, maybe there's a loop.
+ if ptr++; ptr > 10 {
+ return "", off, errTooManyPtr
+ }
+ currOff = (c^0xC0)<<8 | int(c1)
+ default:
+ // Prefixes 0x80 and 0x40 are reserved.
+ return "", off, errReserved
+ }
+ }
+ if len(name) == 0 {
+ name = append(name, '.')
+ }
+ if ptr == 0 {
+ newOff = currOff
+ }
+ return string(name), newOff, nil
+}
+
+func skipName(msg []byte, off int) (int, error) {
+ // newOff is the offset where the next record will start. Pointers lead
+ // to data that belongs to other names and thus doesn't count towards to
+ // the usage of this name.
+ newOff := off
+
+Loop:
+ for {
+ if newOff >= len(msg) {
+ return off, errBaseLen
+ }
+ c := int(msg[newOff])
+ newOff++
+ switch c & 0xC0 {
+ case 0x00:
+ if c == 0x00 {
+ // A zero length signals the end of the name.
+ break Loop
+ }
+ // literal string
+ newOff += c
+ if newOff > len(msg) {
+ return off, errCalcLen
+ }
+ case 0xC0:
+ // Pointer to somewhere else in msg.
+
+ // Pointers are two bytes.
+ newOff++
+
+ // Don't follow the pointer as the data here has ended.
+ break Loop
+ default:
+ // Prefixes 0x80 and 0x40 are reserved.
+ return off, errReserved
+ }
+ }
+
+ return newOff, nil
+}
+
+// A Question is a DNS query.
+type Question struct {
+ Name string
+ Type Type
+ Class Class
+}
+
+func (q *Question) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ msg, err := packName(msg, q.Name, compression)
+ if err != nil {
+ return msg, &nestedError{"Name", err}
+ }
+ msg = packType(msg, q.Type)
+ return packClass(msg, q.Class), nil
+}
+
+func unpackResource(msg []byte, off int, hdr ResourceHeader) (Resource, int, error) {
+ var (
+ r Resource
+ err error
+ name string
+ )
+ switch hdr.Type {
+ case TypeA:
+ r, err = unpackAResource(hdr, msg, off)
+ name = "A"
+ case TypeNS:
+ r, err = unpackNSResource(hdr, msg, off)
+ name = "NS"
+ case TypeCNAME:
+ r, err = unpackCNAMEResource(hdr, msg, off)
+ name = "CNAME"
+ case TypeSOA:
+ r, err = unpackSOAResource(hdr, msg, off)
+ name = "SOA"
+ case TypePTR:
+ r, err = unpackPTRResource(hdr, msg, off)
+ name = "PTR"
+ case TypeMX:
+ r, err = unpackMXResource(hdr, msg, off)
+ name = "MX"
+ case TypeTXT:
+ r, err = unpackTXTResource(hdr, msg, off)
+ name = "TXT"
+ case TypeAAAA:
+ r, err = unpackAAAAResource(hdr, msg, off)
+ name = "AAAA"
+ case TypeSRV:
+ r, err = unpackSRVResource(hdr, msg, off)
+ name = "SRV"
+ }
+ if err != nil {
+ return nil, off, &nestedError{name + " record", err}
+ }
+ if r != nil {
+ return r, off + int(hdr.Length), nil
+ }
+ return nil, off, errors.New("invalid resource type: " + string(hdr.Type+'0'))
+}
+
+// A CNAMEResource is a CNAME Resource record.
+type CNAMEResource struct {
+ ResourceHeader
+
+ CNAME string
+}
+
+func (r *CNAMEResource) realType() Type {
+ return TypeCNAME
+}
+
+func (r *CNAMEResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ return packName(msg, r.CNAME, compression)
+}
+
+func unpackCNAMEResource(hdr ResourceHeader, msg []byte, off int) (*CNAMEResource, error) {
+ cname, _, err := unpackName(msg, off)
+ if err != nil {
+ return nil, err
+ }
+ return &CNAMEResource{hdr, cname}, nil
+}
+
+// An MXResource is an MX Resource record.
+type MXResource struct {
+ ResourceHeader
+
+ Pref uint16
+ MX string
+}
+
+func (r *MXResource) realType() Type {
+ return TypeMX
+}
+
+func (r *MXResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ oldMsg := msg
+ msg = packUint16(msg, r.Pref)
+ msg, err := packName(msg, r.MX, compression)
+ if err != nil {
+ return oldMsg, &nestedError{"MXResource.MX", err}
+ }
+ return msg, nil
+}
+
+func unpackMXResource(hdr ResourceHeader, msg []byte, off int) (*MXResource, error) {
+ pref, off, err := unpackUint16(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Pref", err}
+ }
+ mx, _, err := unpackName(msg, off)
+ if err != nil {
+ return nil, &nestedError{"MX", err}
+ }
+ return &MXResource{hdr, pref, mx}, nil
+}
+
+// An NSResource is an NS Resource record.
+type NSResource struct {
+ ResourceHeader
+
+ NS string
+}
+
+func (r *NSResource) realType() Type {
+ return TypeNS
+}
+
+func (r *NSResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ return packName(msg, r.NS, compression)
+}
+
+func unpackNSResource(hdr ResourceHeader, msg []byte, off int) (*NSResource, error) {
+ ns, _, err := unpackName(msg, off)
+ if err != nil {
+ return nil, err
+ }
+ return &NSResource{hdr, ns}, nil
+}
+
+// A PTRResource is a PTR Resource record.
+type PTRResource struct {
+ ResourceHeader
+
+ PTR string
+}
+
+func (r *PTRResource) realType() Type {
+ return TypePTR
+}
+
+func (r *PTRResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ return packName(msg, r.PTR, compression)
+}
+
+func unpackPTRResource(hdr ResourceHeader, msg []byte, off int) (*PTRResource, error) {
+ ptr, _, err := unpackName(msg, off)
+ if err != nil {
+ return nil, err
+ }
+ return &PTRResource{hdr, ptr}, nil
+}
+
+// An SOAResource is an SOA Resource record.
+type SOAResource struct {
+ ResourceHeader
+
+ NS string
+ MBox string
+ Serial uint32
+ Refresh uint32
+ Retry uint32
+ Expire uint32
+
+ // MinTTL the is the default TTL of Resources records which did not
+ // contain a TTL value and the TTL of negative responses. (RFC 2308
+ // Section 4)
+ MinTTL uint32
+}
+
+func (r *SOAResource) realType() Type {
+ return TypeSOA
+}
+
+func (r *SOAResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ oldMsg := msg
+ msg, err := packName(msg, r.NS, compression)
+ if err != nil {
+ return oldMsg, &nestedError{"SOAResource.NS", err}
+ }
+ msg, err = packName(msg, r.MBox, compression)
+ if err != nil {
+ return oldMsg, &nestedError{"SOAResource.MBox", err}
+ }
+ msg = packUint32(msg, r.Serial)
+ msg = packUint32(msg, r.Refresh)
+ msg = packUint32(msg, r.Retry)
+ msg = packUint32(msg, r.Expire)
+ return packUint32(msg, r.MinTTL), nil
+}
+
+func unpackSOAResource(hdr ResourceHeader, msg []byte, off int) (*SOAResource, error) {
+ ns, off, err := unpackName(msg, off)
+ if err != nil {
+ return nil, &nestedError{"NS", err}
+ }
+ mbox, off, err := unpackName(msg, off)
+ if err != nil {
+ return nil, &nestedError{"MBox", err}
+ }
+ serial, off, err := unpackUint32(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Serial", err}
+ }
+ refresh, off, err := unpackUint32(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Refresh", err}
+ }
+ retry, off, err := unpackUint32(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Retry", err}
+ }
+ expire, off, err := unpackUint32(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Expire", err}
+ }
+ minTTL, _, err := unpackUint32(msg, off)
+ if err != nil {
+ return nil, &nestedError{"MinTTL", err}
+ }
+ return &SOAResource{hdr, ns, mbox, serial, refresh, retry, expire, minTTL}, nil
+}
+
+// A TXTResource is a TXT Resource record.
+type TXTResource struct {
+ ResourceHeader
+
+ Txt string // Not a domain name.
+}
+
+func (r *TXTResource) realType() Type {
+ return TypeTXT
+}
+
+func (r *TXTResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ return packText(msg, r.Txt), nil
+}
+
+func unpackTXTResource(hdr ResourceHeader, msg []byte, off int) (*TXTResource, error) {
+ var txt string
+ for n := uint16(0); n < hdr.Length; {
+ var t string
+ var err error
+ if t, off, err = unpackText(msg, off); err != nil {
+ return nil, &nestedError{"text", err}
+ }
+ // Check if we got too many bytes.
+ if hdr.Length-n < uint16(len(t))+1 {
+ return nil, errCalcLen
+ }
+ n += uint16(len(t)) + 1
+ txt += t
+ }
+ return &TXTResource{hdr, txt}, nil
+}
+
+// An SRVResource is an SRV Resource record.
+type SRVResource struct {
+ ResourceHeader
+
+ Priority uint16
+ Weight uint16
+ Port uint16
+ Target string // Not compressed as per RFC 2782.
+}
+
+func (r *SRVResource) realType() Type {
+ return TypeSRV
+}
+
+func (r *SRVResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ oldMsg := msg
+ msg = packUint16(msg, r.Priority)
+ msg = packUint16(msg, r.Weight)
+ msg = packUint16(msg, r.Port)
+ msg, err := packName(msg, r.Target, nil)
+ if err != nil {
+ return oldMsg, &nestedError{"SRVResource.Target", err}
+ }
+ return msg, nil
+}
+
+func unpackSRVResource(hdr ResourceHeader, msg []byte, off int) (*SRVResource, error) {
+ priority, off, err := unpackUint16(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Priority", err}
+ }
+ weight, off, err := unpackUint16(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Weight", err}
+ }
+ port, off, err := unpackUint16(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Port", err}
+ }
+ target, _, err := unpackName(msg, off)
+ if err != nil {
+ return nil, &nestedError{"Target", err}
+ }
+ return &SRVResource{hdr, priority, weight, port, target}, nil
+}
+
+// An AResource is an A Resource record.
+type AResource struct {
+ ResourceHeader
+
+ A [4]byte
+}
+
+func (r *AResource) realType() Type {
+ return TypeA
+}
+
+func (r *AResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ return packBytes(msg, r.A[:]), nil
+}
+
+func unpackAResource(hdr ResourceHeader, msg []byte, off int) (*AResource, error) {
+ var a [4]byte
+ if _, err := unpackBytes(msg, off, a[:]); err != nil {
+ return nil, err
+ }
+ return &AResource{hdr, a}, nil
+}
+
+// An AAAAResource is an AAAA Resource record.
+type AAAAResource struct {
+ ResourceHeader
+
+ AAAA [16]byte
+}
+
+func (r *AAAAResource) realType() Type {
+ return TypeAAAA
+}
+
+func (r *AAAAResource) pack(msg []byte, compression map[string]int) ([]byte, error) {
+ return packBytes(msg, r.AAAA[:]), nil
+}
+
+func unpackAAAAResource(hdr ResourceHeader, msg []byte, off int) (*AAAAResource, error) {
+ var aaaa [16]byte
+ if _, err := unpackBytes(msg, off, aaaa[:]); err != nil {
+ return nil, err
+ }
+ return &AAAAResource{hdr, aaaa}, nil
+}
diff --git a/vendor/golang.org/x/net/dns/dnsmessage/message_test.go b/vendor/golang.org/x/net/dns/dnsmessage/message_test.go
new file mode 100644
index 000000000..46edd7243
--- /dev/null
+++ b/vendor/golang.org/x/net/dns/dnsmessage/message_test.go
@@ -0,0 +1,575 @@
+// Copyright 2009 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 dnsmessage
+
+import (
+ "fmt"
+ "net"
+ "reflect"
+ "strings"
+ "testing"
+)
+
+func (m *Message) String() string {
+ s := fmt.Sprintf("Message: %#v\n", &m.Header)
+ if len(m.Questions) > 0 {
+ s += "-- Questions\n"
+ for _, q := range m.Questions {
+ s += fmt.Sprintf("%#v\n", q)
+ }
+ }
+ if len(m.Answers) > 0 {
+ s += "-- Answers\n"
+ for _, a := range m.Answers {
+ s += fmt.Sprintf("%#v\n", a)
+ }
+ }
+ if len(m.Authorities) > 0 {
+ s += "-- Authorities\n"
+ for _, ns := range m.Authorities {
+ s += fmt.Sprintf("%#v\n", ns)
+ }
+ }
+ if len(m.Additionals) > 0 {
+ s += "-- Additionals\n"
+ for _, e := range m.Additionals {
+ s += fmt.Sprintf("%#v\n", e)
+ }
+ }
+ return s
+}
+
+func TestQuestionPackUnpack(t *testing.T) {
+ want := Question{
+ Name: ".",
+ Type: TypeA,
+ Class: ClassINET,
+ }
+ buf, err := want.pack(make([]byte, 1, 50), map[string]int{})
+ if err != nil {
+ t.Fatal("Packing failed:", err)
+ }
+ var p Parser
+ p.msg = buf
+ p.header.questions = 1
+ p.section = sectionQuestions
+ p.off = 1
+ got, err := p.Question()
+ if err != nil {
+ t.Fatalf("Unpacking failed: %v\n%s", err, string(buf[1:]))
+ }
+ if p.off != len(buf) {
+ t.Errorf("Unpacked different amount than packed: got n = %d, want = %d", p.off, len(buf))
+ }
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("Got = %+v, want = %+v", got, want)
+ }
+}
+
+func TestNamePackUnpack(t *testing.T) {
+ tests := []struct {
+ in string
+ want string
+ err error
+ }{
+ {"", ".", nil},
+ {".", ".", nil},
+ {"google..com", "", errZeroSegLen},
+ {"google.com", "google.com.", nil},
+ {"google..com.", "", errZeroSegLen},
+ {"google.com.", "google.com.", nil},
+ {".google.com.", "", errZeroSegLen},
+ {"www..google.com.", "", errZeroSegLen},
+ {"www.google.com.", "www.google.com.", nil},
+ }
+
+ for _, test := range tests {
+ buf, err := packName(make([]byte, 0, 30), test.in, map[string]int{})
+ if err != test.err {
+ t.Errorf("Packing of %s: got err = %v, want err = %v", test.in, err, test.err)
+ continue
+ }
+ if test.err != nil {
+ continue
+ }
+ got, n, err := unpackName(buf, 0)
+ if err != nil {
+ t.Errorf("Unpacking for %s failed: %v", test.in, err)
+ continue
+ }
+ if n != len(buf) {
+ t.Errorf(
+ "Unpacked different amount than packed for %s: got n = %d, want = %d",
+ test.in,
+ n,
+ len(buf),
+ )
+ }
+ if got != test.want {
+ t.Errorf("Unpacking packing of %s: got = %s, want = %s", test.in, got, test.want)
+ }
+ }
+}
+
+func TestDNSPackUnpack(t *testing.T) {
+ wants := []Message{
+ {
+ Questions: []Question{
+ {
+ Name: ".",
+ Type: TypeAAAA,
+ Class: ClassINET,
+ },
+ },
+ Answers: []Resource{},
+ Authorities: []Resource{},
+ Additionals: []Resource{},
+ },
+ largeTestMsg(),
+ }
+ for i, want := range wants {
+ b, err := want.Pack()
+ if err != nil {
+ t.Fatalf("%d: packing failed: %v", i, err)
+ }
+ var got Message
+ err = got.Unpack(b)
+ if err != nil {
+ t.Fatalf("%d: unpacking failed: %v", i, err)
+ }
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("%d: got = %+v, want = %+v", i, &got, &want)
+ }
+ }
+}
+
+func TestSkipAll(t *testing.T) {
+ msg := largeTestMsg()
+ buf, err := msg.Pack()
+ if err != nil {
+ t.Fatal("Packing large test message:", err)
+ }
+ var p Parser
+ if _, err := p.Start(buf); err != nil {
+ t.Fatal(err)
+ }
+
+ tests := []struct {
+ name string
+ f func() error
+ }{
+ {"SkipAllQuestions", p.SkipAllQuestions},
+ {"SkipAllAnswers", p.SkipAllAnswers},
+ {"SkipAllAuthorities", p.SkipAllAuthorities},
+ {"SkipAllAdditionals", p.SkipAllAdditionals},
+ }
+ for _, test := range tests {
+ for i := 1; i <= 3; i++ {
+ if err := test.f(); err != nil {
+ t.Errorf("Call #%d to %s(): %v", i, test.name, err)
+ }
+ }
+ }
+}
+
+func TestSkipNotStarted(t *testing.T) {
+ var p Parser
+
+ tests := []struct {
+ name string
+ f func() error
+ }{
+ {"SkipAllQuestions", p.SkipAllQuestions},
+ {"SkipAllAnswers", p.SkipAllAnswers},
+ {"SkipAllAuthorities", p.SkipAllAuthorities},
+ {"SkipAllAdditionals", p.SkipAllAdditionals},
+ }
+ for _, test := range tests {
+ if err := test.f(); err != ErrNotStarted {
+ t.Errorf("Got %s() = %v, want = %v", test.name, err, ErrNotStarted)
+ }
+ }
+}
+
+func TestTooManyRecords(t *testing.T) {
+ const recs = int(^uint16(0)) + 1
+ tests := []struct {
+ name string
+ msg Message
+ want error
+ }{
+ {
+ "Questions",
+ Message{
+ Questions: make([]Question, recs),
+ },
+ errTooManyQuestions,
+ },
+ {
+ "Answers",
+ Message{
+ Answers: make([]Resource, recs),
+ },
+ errTooManyAnswers,
+ },
+ {
+ "Authorities",
+ Message{
+ Authorities: make([]Resource, recs),
+ },
+ errTooManyAuthorities,
+ },
+ {
+ "Additionals",
+ Message{
+ Additionals: make([]Resource, recs),
+ },
+ errTooManyAdditionals,
+ },
+ }
+
+ for _, test := range tests {
+ if _, got := test.msg.Pack(); got != test.want {
+ t.Errorf("Packing %d %s: got = %v, want = %v", recs, test.name, got, test.want)
+ }
+ }
+}
+
+func TestVeryLongTxt(t *testing.T) {
+ want := &TXTResource{
+ ResourceHeader: ResourceHeader{
+ Name: "foo.bar.example.com.",
+ Type: TypeTXT,
+ Class: ClassINET,
+ },
+ Txt: loremIpsum,
+ }
+ buf, err := packResource(make([]byte, 0, 8000), want, map[string]int{})
+ if err != nil {
+ t.Fatal("Packing failed:", err)
+ }
+ var hdr ResourceHeader
+ off, err := hdr.unpack(buf, 0)
+ if err != nil {
+ t.Fatal("Unpacking ResourceHeader failed:", err)
+ }
+ got, n, err := unpackResource(buf, off, hdr)
+ if err != nil {
+ t.Fatal("Unpacking failed:", err)
+ }
+ if n != len(buf) {
+ t.Errorf("Unpacked different amount than packed: got n = %d, want = %d", n, len(buf))
+ }
+ if !reflect.DeepEqual(got, want) {
+ t.Errorf("Got = %+v, want = %+v", got, want)
+ }
+}
+
+func ExampleHeaderSearch() {
+ msg := Message{
+ Header: Header{Response: true, Authoritative: true},
+ Questions: []Question{
+ {
+ Name: "foo.bar.example.com.",
+ Type: TypeA,
+ Class: ClassINET,
+ },
+ {
+ Name: "bar.example.com.",
+ Type: TypeA,
+ Class: ClassINET,
+ },
+ },
+ Answers: []Resource{
+ &AResource{
+ ResourceHeader: ResourceHeader{
+ Name: "foo.bar.example.com.",
+ Type: TypeA,
+ Class: ClassINET,
+ },
+ A: [4]byte{127, 0, 0, 1},
+ },
+ &AResource{
+ ResourceHeader: ResourceHeader{
+ Name: "bar.example.com.",
+ Type: TypeA,
+ Class: ClassINET,
+ },
+ A: [4]byte{127, 0, 0, 2},
+ },
+ },
+ }
+
+ buf, err := msg.Pack()
+ if err != nil {
+ panic(err)
+ }
+
+ wantName := "bar.example.com."
+
+ var p Parser
+ if _, err := p.Start(buf); err != nil {
+ panic(err)
+ }
+
+ for {
+ q, err := p.Question()
+ if err == ErrSectionDone {
+ break
+ }
+ if err != nil {
+ panic(err)
+ }
+
+ if q.Name != wantName {
+ continue
+ }
+
+ fmt.Println("Found question for name", wantName)
+ if err := p.SkipAllQuestions(); err != nil {
+ panic(err)
+ }
+ break
+ }
+
+ var gotIPs []net.IP
+ for {
+ h, err := p.AnswerHeader()
+ if err == ErrSectionDone {
+ break
+ }
+ if err != nil {
+ panic(err)
+ }
+
+ if (h.Type != TypeA && h.Type != TypeAAAA) || h.Class != ClassINET {
+ continue
+ }
+
+ if !strings.EqualFold(h.Name, wantName) {
+ if err := p.SkipAnswer(); err != nil {
+ panic(err)
+ }
+ continue
+ }
+ a, err := p.Answer()
+ if err != nil {
+ panic(err)
+ }
+
+ switch r := a.(type) {
+ default:
+ panic(fmt.Sprintf("unknown type: %T", r))
+ case *AResource:
+ gotIPs = append(gotIPs, r.A[:])
+ case *AAAAResource:
+ gotIPs = append(gotIPs, r.AAAA[:])
+ }
+ }
+
+ fmt.Printf("Found A/AAAA records for name %s: %v\n", wantName, gotIPs)
+
+ // Output:
+ // Found question for name bar.example.com.
+ // Found A/AAAA records for name bar.example.com.: [127.0.0.2]
+}
+
+func largeTestMsg() Message {
+ return Message{
+ Header: Header{Response: true, Authoritative: true},
+ Questions: []Question{
+ {
+ Name: "foo.bar.example.com.",
+ Type: TypeA,
+ Class: ClassINET,
+ },
+ },
+ Answers: []Resource{
+ &AResource{
+ ResourceHeader: ResourceHeader{
+ Name: "foo.bar.example.com.",
+ Type: TypeA,
+ Class: ClassINET,
+ },
+ A: [4]byte{127, 0, 0, 1},
+ },
+ &AResource{
+ ResourceHeader: ResourceHeader{
+ Name: "foo.bar.example.com.",
+ Type: TypeA,
+ Class: ClassINET,
+ },
+ A: [4]byte{127, 0, 0, 2},
+ },
+ },
+ Authorities: []Resource{
+ &NSResource{
+ ResourceHeader: ResourceHeader{
+ Name: "foo.bar.example.com.",
+ Type: TypeNS,
+ Class: ClassINET,
+ },
+ NS: "ns1.example.com.",
+ },
+ &NSResource{
+ ResourceHeader: ResourceHeader{
+ Name: "foo.bar.example.com.",
+ Type: TypeNS,
+ Class: ClassINET,
+ },
+ NS: "ns2.example.com.",
+ },
+ },
+ Additionals: []Resource{
+ &TXTResource{
+ ResourceHeader: ResourceHeader{
+ Name: "foo.bar.example.com.",
+ Type: TypeTXT,
+ Class: ClassINET,
+ },
+ Txt: "So Long, and Thanks for All the Fish",
+ },
+ &TXTResource{
+ ResourceHeader: ResourceHeader{
+ Name: "foo.bar.example.com.",
+ Type: TypeTXT,
+ Class: ClassINET,
+ },
+ Txt: "Hamster Huey and the Gooey Kablooie",
+ },
+ },
+ }
+}
+
+const loremIpsum = `
+Lorem ipsum dolor sit amet, nec enim antiopam id, an ullum choro
+nonumes qui, pro eu debet honestatis mediocritatem. No alia enim eos,
+magna signiferumque ex vis. Mei no aperiri dissentias, cu vel quas
+regione. Malorum quaeque vim ut, eum cu semper aliquid invidunt, ei
+nam ipsum assentior.
+
+Nostrum appellantur usu no, vis ex probatus adipiscing. Cu usu illum
+facilis eleifend. Iusto conceptam complectitur vim id. Tale omnesque
+no usu, ei oblique sadipscing vim. At nullam voluptua usu, mei laudem
+reformidans et. Qui ei eros porro reformidans, ius suas veritus
+torquatos ex. Mea te facer alterum consequat.
+
+Soleat torquatos democritum sed et, no mea congue appareat, facer
+aliquam nec in. Has te ipsum tritani. At justo dicta option nec, movet
+phaedrum ad nam. Ea detracto verterem liberavisse has, delectus
+suscipiantur in mei. Ex nam meliore complectitur. Ut nam omnis
+honestatis quaerendum, ea mea nihil affert detracto, ad vix rebum
+mollis.
+
+Ut epicurei praesent neglegentur pri, prima fuisset intellegebat ad
+vim. An habemus comprehensam usu, at enim dignissim pro. Eam reque
+vivendum adipisci ea. Vel ne odio choro minimum. Sea admodum
+dissentiet ex. Mundi tamquam evertitur ius cu. Homero postea iisque ut
+pro, vel ne saepe senserit consetetur.
+
+Nulla utamur facilisis ius ea, in viderer diceret pertinax eum. Mei no
+enim quodsi facilisi, ex sed aeterno appareat mediocritatem, eum
+sententiae deterruisset ut. At suas timeam euismod cum, offendit
+appareat interpretaris ne vix. Vel ea civibus albucius, ex vim quidam
+accusata intellegebat, noluisse instructior sea id. Nec te nonumes
+habemus appellantur, quis dignissim vituperata eu nam.
+
+At vix apeirian patrioque vituperatoribus, an usu agam assum. Debet
+iisque an mea. Per eu dicant ponderum accommodare. Pri alienum
+placerat senserit an, ne eum ferri abhorreant vituperatoribus. Ut mea
+eligendi disputationi. Ius no tation everti impedit, ei magna quidam
+mediocritatem pri.
+
+Legendos perpetua iracundia ne usu, no ius ullum epicurei intellegam,
+ad modus epicuri lucilius eam. In unum quaerendum usu. Ne diam paulo
+has, ea veri virtute sed. Alia honestatis conclusionemque mea eu, ut
+iudico albucius his.
+
+Usu essent probatus eu, sed omnis dolor delicatissimi ex. No qui augue
+dissentias dissentiet. Laudem recteque no usu, vel an velit noluisse,
+an sed utinam eirmod appetere. Ne mea fuisset inimicus ocurreret. At
+vis dicant abhorreant, utinam forensibus nec ne, mei te docendi
+consequat. Brute inermis persecuti cum id. Ut ipsum munere propriae
+usu, dicit graeco disputando id has.
+
+Eros dolore quaerendum nam ei. Timeam ornatus inciderint pro id. Nec
+torquatos sadipscing ei, ancillae molestie per in. Malis principes duo
+ea, usu liber postulant ei.
+
+Graece timeam voluptatibus eu eam. Alia probatus quo no, ea scripta
+feugiat duo. Congue option meliore ex qui, noster invenire appellantur
+ea vel. Eu exerci legendos vel. Consetetur repudiandae vim ut. Vix an
+probo minimum, et nam illud falli tempor.
+
+Cum dico signiferumque eu. Sed ut regione maiorum, id veritus insolens
+tacimates vix. Eu mel sint tamquam lucilius, duo no oporteat
+tacimates. Atqui augue concludaturque vix ei, id mel utroque menandri.
+
+Ad oratio blandit aliquando pro. Vis et dolorum rationibus
+philosophia, ad cum nulla molestie. Hinc fuisset adversarium eum et,
+ne qui nisl verear saperet, vel te quaestio forensibus. Per odio
+option delenit an. Alii placerat has no, in pri nihil platonem
+cotidieque. Est ut elit copiosae scaevola, debet tollit maluisset sea
+an.
+
+Te sea hinc debet pericula, liber ridens fabulas cu sed, quem mutat
+accusam mea et. Elitr labitur albucius et pri, an labore feugait mel.
+Velit zril melius usu ea. Ad stet putent interpretaris qui. Mel no
+error volumus scripserit. In pro paulo iudico, quo ei dolorem
+verterem, affert fabellas dissentiet ea vix.
+
+Vis quot deserunt te. Error aliquid detraxit eu usu, vis alia eruditi
+salutatus cu. Est nostrud bonorum an, ei usu alii salutatus. Vel at
+nisl primis, eum ex aperiri noluisse reformidans. Ad veri velit
+utroque vis, ex equidem detraxit temporibus has.
+
+Inermis appareat usu ne. Eros placerat periculis mea ad, in dictas
+pericula pro. Errem postulant at usu, ea nec amet ornatus mentitum. Ad
+mazim graeco eum, vel ex percipit volutpat iudicabit, sit ne delicata
+interesset. Mel sapientem prodesset abhorreant et, oblique suscipit
+eam id.
+
+An maluisset disputando mea, vidit mnesarchum pri et. Malis insolens
+inciderint no sea. Ea persius maluisset vix, ne vim appellantur
+instructior, consul quidam definiebas pri id. Cum integre feugiat
+pericula in, ex sed persius similique, mel ne natum dicit percipitur.
+
+Primis discere ne pri, errem putent definitionem at vis. Ei mel dolore
+neglegentur, mei tincidunt percipitur ei. Pro ad simul integre
+rationibus. Eu vel alii honestatis definitiones, mea no nonumy
+reprehendunt.
+
+Dicta appareat legendos est cu. Eu vel congue dicunt omittam, no vix
+adhuc minimum constituam, quot noluisse id mel. Eu quot sale mutat
+duo, ex nisl munere invenire duo. Ne nec ullum utamur. Pro alterum
+debitis nostrum no, ut vel aliquid vivendo.
+
+Aliquip fierent praesent quo ne, id sit audiam recusabo delicatissimi.
+Usu postulant incorrupte cu. At pro dicit tibique intellegam, cibo
+dolore impedit id eam, et aeque feugait assentior has. Quando sensibus
+nec ex. Possit sensibus pri ad, unum mutat periculis cu vix.
+
+Mundi tibique vix te, duo simul partiendo qualisque id, est at vidit
+sonet tempor. No per solet aeterno deseruisse. Petentium salutandi
+definiebas pri cu. Munere vivendum est in. Ei justo congue eligendi
+vis, modus offendit omittantur te mel.
+
+Integre voluptaria in qui, sit habemus tractatos constituam no. Utinam
+melius conceptam est ne, quo in minimum apeirian delicata, ut ius
+porro recusabo. Dicant expetenda vix no, ludus scripserit sed ex, eu
+his modo nostro. Ut etiam sonet his, quodsi inciderint philosophia te
+per. Nullam lobortis eu cum, vix an sonet efficiendi repudiandae. Vis
+ad idque fabellas intellegebat.
+
+Eum commodo senserit conclusionemque ex. Sed forensibus sadipscing ut,
+mei in facer delicata periculis, sea ne hinc putent cetero. Nec ne
+alia corpora invenire, alia prima soleat te cum. Eleifend posidonium
+nam at.
+
+Dolorum indoctum cu quo, ex dolor legendos recteque eam, cu pri zril
+discere. Nec civibus officiis dissentiunt ex, est te liber ludus
+elaboraret. Cum ea fabellas invenire. Ex vim nostrud eripuit
+comprehensam, nam te inermis delectus, saepe inermis senserit.
+`
diff --git a/vendor/golang.org/x/net/http2/client_conn_pool.go b/vendor/golang.org/x/net/http2/client_conn_pool.go
index b13941258..bdf5652b0 100644
--- a/vendor/golang.org/x/net/http2/client_conn_pool.go
+++ b/vendor/golang.org/x/net/http2/client_conn_pool.go
@@ -247,7 +247,7 @@ func filterOutClientConn(in []*ClientConn, exclude *ClientConn) []*ClientConn {
}
// noDialClientConnPool is an implementation of http2.ClientConnPool
-// which never dials. We let the HTTP/1.1 client dial and use its TLS
+// which never dials. We let the HTTP/1.1 client dial and use its TLS
// connection instead.
type noDialClientConnPool struct{ *clientConnPool }
diff --git a/vendor/golang.org/x/net/http2/databuffer.go b/vendor/golang.org/x/net/http2/databuffer.go
new file mode 100644
index 000000000..a3067f8de
--- /dev/null
+++ b/vendor/golang.org/x/net/http2/databuffer.go
@@ -0,0 +1,146 @@
+// 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 http2
+
+import (
+ "errors"
+ "fmt"
+ "sync"
+)
+
+// Buffer chunks are allocated from a pool to reduce pressure on GC.
+// The maximum wasted space per dataBuffer is 2x the largest size class,
+// which happens when the dataBuffer has multiple chunks and there is
+// one unread byte in both the first and last chunks. We use a few size
+// classes to minimize overheads for servers that typically receive very
+// small request bodies.
+//
+// TODO: Benchmark to determine if the pools are necessary. The GC may have
+// improved enough that we can instead allocate chunks like this:
+// make([]byte, max(16<<10, expectedBytesRemaining))
+var (
+ dataChunkSizeClasses = []int{
+ 1 << 10,
+ 2 << 10,
+ 4 << 10,
+ 8 << 10,
+ 16 << 10,
+ }
+ dataChunkPools = [...]sync.Pool{
+ {New: func() interface{} { return make([]byte, 1<<10) }},
+ {New: func() interface{} { return make([]byte, 2<<10) }},
+ {New: func() interface{} { return make([]byte, 4<<10) }},
+ {New: func() interface{} { return make([]byte, 8<<10) }},
+ {New: func() interface{} { return make([]byte, 16<<10) }},
+ }
+)
+
+func getDataBufferChunk(size int64) []byte {
+ i := 0
+ for ; i < len(dataChunkSizeClasses)-1; i++ {
+ if size <= int64(dataChunkSizeClasses[i]) {
+ break
+ }
+ }
+ return dataChunkPools[i].Get().([]byte)
+}
+
+func putDataBufferChunk(p []byte) {
+ for i, n := range dataChunkSizeClasses {
+ if len(p) == n {
+ dataChunkPools[i].Put(p)
+ return
+ }
+ }
+ panic(fmt.Sprintf("unexpected buffer len=%v", len(p)))
+}
+
+// dataBuffer is an io.ReadWriter backed by a list of data chunks.
+// Each dataBuffer is used to read DATA frames on a single stream.
+// The buffer is divided into chunks so the server can limit the
+// total memory used by a single connection without limiting the
+// request body size on any single stream.
+type dataBuffer struct {
+ chunks [][]byte
+ r int // next byte to read is chunks[0][r]
+ w int // next byte to write is chunks[len(chunks)-1][w]
+ size int // total buffered bytes
+ expected int64 // we expect at least this many bytes in future Write calls (ignored if <= 0)
+}
+
+var errReadEmpty = errors.New("read from empty dataBuffer")
+
+// Read copies bytes from the buffer into p.
+// It is an error to read when no data is available.
+func (b *dataBuffer) Read(p []byte) (int, error) {
+ if b.size == 0 {
+ return 0, errReadEmpty
+ }
+ var ntotal int
+ for len(p) > 0 && b.size > 0 {
+ readFrom := b.bytesFromFirstChunk()
+ n := copy(p, readFrom)
+ p = p[n:]
+ ntotal += n
+ b.r += n
+ b.size -= n
+ // If the first chunk has been consumed, advance to the next chunk.
+ if b.r == len(b.chunks[0]) {
+ putDataBufferChunk(b.chunks[0])
+ end := len(b.chunks) - 1
+ copy(b.chunks[:end], b.chunks[1:])
+ b.chunks[end] = nil
+ b.chunks = b.chunks[:end]
+ b.r = 0
+ }
+ }
+ return ntotal, nil
+}
+
+func (b *dataBuffer) bytesFromFirstChunk() []byte {
+ if len(b.chunks) == 1 {
+ return b.chunks[0][b.r:b.w]
+ }
+ return b.chunks[0][b.r:]
+}
+
+// Len returns the number of bytes of the unread portion of the buffer.
+func (b *dataBuffer) Len() int {
+ return b.size
+}
+
+// Write appends p to the buffer.
+func (b *dataBuffer) Write(p []byte) (int, error) {
+ ntotal := len(p)
+ for len(p) > 0 {
+ // If the last chunk is empty, allocate a new chunk. Try to allocate
+ // enough to fully copy p plus any additional bytes we expect to
+ // receive. However, this may allocate less than len(p).
+ want := int64(len(p))
+ if b.expected > want {
+ want = b.expected
+ }
+ chunk := b.lastChunkOrAlloc(want)
+ n := copy(chunk[b.w:], p)
+ p = p[n:]
+ b.w += n
+ b.size += n
+ b.expected -= int64(n)
+ }
+ return ntotal, nil
+}
+
+func (b *dataBuffer) lastChunkOrAlloc(want int64) []byte {
+ if len(b.chunks) != 0 {
+ last := b.chunks[len(b.chunks)-1]
+ if b.w < len(last) {
+ return last
+ }
+ }
+ chunk := getDataBufferChunk(want)
+ b.chunks = append(b.chunks, chunk)
+ b.w = 0
+ return chunk
+}
diff --git a/vendor/golang.org/x/net/http2/databuffer_test.go b/vendor/golang.org/x/net/http2/databuffer_test.go
new file mode 100644
index 000000000..ca227b528
--- /dev/null
+++ b/vendor/golang.org/x/net/http2/databuffer_test.go
@@ -0,0 +1,155 @@
+// 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.
+
+package http2
+
+import (
+ "bytes"
+ "fmt"
+ "reflect"
+ "testing"
+)
+
+func fmtDataChunk(chunk []byte) string {
+ out := ""
+ var last byte
+ var count int
+ for _, c := range chunk {
+ if c != last {
+ if count > 0 {
+ out += fmt.Sprintf(" x %d ", count)
+ count = 0
+ }
+ out += string([]byte{c})
+ last = c
+ }
+ count++
+ }
+ if count > 0 {
+ out += fmt.Sprintf(" x %d", count)
+ }
+ return out
+}
+
+func fmtDataChunks(chunks [][]byte) string {
+ var out string
+ for _, chunk := range chunks {
+ out += fmt.Sprintf("{%q}", fmtDataChunk(chunk))
+ }
+ return out
+}
+
+func testDataBuffer(t *testing.T, wantBytes []byte, setup func(t *testing.T) *dataBuffer) {
+ // Run setup, then read the remaining bytes from the dataBuffer and check
+ // that they match wantBytes. We use different read sizes to check corner
+ // cases in Read.
+ for _, readSize := range []int{1, 2, 1 * 1024, 32 * 1024} {
+ t.Run(fmt.Sprintf("ReadSize=%d", readSize), func(t *testing.T) {
+ b := setup(t)
+ buf := make([]byte, readSize)
+ var gotRead bytes.Buffer
+ for {
+ n, err := b.Read(buf)
+ gotRead.Write(buf[:n])
+ if err == errReadEmpty {
+ break
+ }
+ if err != nil {
+ t.Fatalf("error after %v bytes: %v", gotRead.Len(), err)
+ }
+ }
+ if got, want := gotRead.Bytes(), wantBytes; !bytes.Equal(got, want) {
+ t.Errorf("FinalRead=%q, want %q", fmtDataChunk(got), fmtDataChunk(want))
+ }
+ })
+ }
+}
+
+func TestDataBufferAllocation(t *testing.T) {
+ writes := [][]byte{
+ bytes.Repeat([]byte("a"), 1*1024-1),
+ []byte{'a'},
+ bytes.Repeat([]byte("b"), 4*1024-1),
+ []byte{'b'},
+ bytes.Repeat([]byte("c"), 8*1024-1),
+ []byte{'c'},
+ bytes.Repeat([]byte("d"), 16*1024-1),
+ []byte{'d'},
+ bytes.Repeat([]byte("e"), 32*1024),
+ }
+ var wantRead bytes.Buffer
+ for _, p := range writes {
+ wantRead.Write(p)
+ }
+
+ testDataBuffer(t, wantRead.Bytes(), func(t *testing.T) *dataBuffer {
+ b := &dataBuffer{}
+ for _, p := range writes {
+ if n, err := b.Write(p); n != len(p) || err != nil {
+ t.Fatalf("Write(%q x %d)=%v,%v want %v,nil", p[:1], len(p), n, err, len(p))
+ }
+ }
+ want := [][]byte{
+ bytes.Repeat([]byte("a"), 1*1024),
+ bytes.Repeat([]byte("b"), 4*1024),
+ bytes.Repeat([]byte("c"), 8*1024),
+ bytes.Repeat([]byte("d"), 16*1024),
+ bytes.Repeat([]byte("e"), 16*1024),
+ bytes.Repeat([]byte("e"), 16*1024),
+ }
+ if !reflect.DeepEqual(b.chunks, want) {
+ t.Errorf("dataBuffer.chunks\ngot: %s\nwant: %s", fmtDataChunks(b.chunks), fmtDataChunks(want))
+ }
+ return b
+ })
+}
+
+func TestDataBufferAllocationWithExpected(t *testing.T) {
+ writes := [][]byte{
+ bytes.Repeat([]byte("a"), 1*1024), // allocates 16KB
+ bytes.Repeat([]byte("b"), 14*1024),
+ bytes.Repeat([]byte("c"), 15*1024), // allocates 16KB more
+ bytes.Repeat([]byte("d"), 2*1024),
+ bytes.Repeat([]byte("e"), 1*1024), // overflows 32KB expectation, allocates just 1KB
+ }
+ var wantRead bytes.Buffer
+ for _, p := range writes {
+ wantRead.Write(p)
+ }
+
+ testDataBuffer(t, wantRead.Bytes(), func(t *testing.T) *dataBuffer {
+ b := &dataBuffer{expected: 32 * 1024}
+ for _, p := range writes {
+ if n, err := b.Write(p); n != len(p) || err != nil {
+ t.Fatalf("Write(%q x %d)=%v,%v want %v,nil", p[:1], len(p), n, err, len(p))
+ }
+ }
+ want := [][]byte{
+ append(bytes.Repeat([]byte("a"), 1*1024), append(bytes.Repeat([]byte("b"), 14*1024), bytes.Repeat([]byte("c"), 1*1024)...)...),
+ append(bytes.Repeat([]byte("c"), 14*1024), bytes.Repeat([]byte("d"), 2*1024)...),
+ bytes.Repeat([]byte("e"), 1*1024),
+ }
+ if !reflect.DeepEqual(b.chunks, want) {
+ t.Errorf("dataBuffer.chunks\ngot: %s\nwant: %s", fmtDataChunks(b.chunks), fmtDataChunks(want))
+ }
+ return b
+ })
+}
+
+func TestDataBufferWriteAfterPartialRead(t *testing.T) {
+ testDataBuffer(t, []byte("cdxyz"), func(t *testing.T) *dataBuffer {
+ b := &dataBuffer{}
+ if n, err := b.Write([]byte("abcd")); n != 4 || err != nil {
+ t.Fatalf("Write(\"abcd\")=%v,%v want 4,nil", n, err)
+ }
+ p := make([]byte, 2)
+ if n, err := b.Read(p); n != 2 || err != nil || !bytes.Equal(p, []byte("ab")) {
+ t.Fatalf("Read()=%q,%v,%v want \"ab\",2,nil", p, n, err)
+ }
+ if n, err := b.Write([]byte("xyz")); n != 3 || err != nil {
+ t.Fatalf("Write(\"xyz\")=%v,%v want 3,nil", n, err)
+ }
+ return b
+ })
+}
diff --git a/vendor/golang.org/x/net/http2/fixed_buffer.go b/vendor/golang.org/x/net/http2/fixed_buffer.go
deleted file mode 100644
index 47da0f0bf..000000000
--- a/vendor/golang.org/x/net/http2/fixed_buffer.go
+++ /dev/null
@@ -1,60 +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 http2
-
-import (
- "errors"
-)
-
-// fixedBuffer is an io.ReadWriter backed by a fixed size buffer.
-// It never allocates, but moves old data as new data is written.
-type fixedBuffer struct {
- buf []byte
- r, w int
-}
-
-var (
- errReadEmpty = errors.New("read from empty fixedBuffer")
- errWriteFull = errors.New("write on full fixedBuffer")
-)
-
-// Read copies bytes from the buffer into p.
-// It is an error to read when no data is available.
-func (b *fixedBuffer) Read(p []byte) (n int, err error) {
- if b.r == b.w {
- return 0, errReadEmpty
- }
- n = copy(p, b.buf[b.r:b.w])
- b.r += n
- if b.r == b.w {
- b.r = 0
- b.w = 0
- }
- return n, nil
-}
-
-// Len returns the number of bytes of the unread portion of the buffer.
-func (b *fixedBuffer) Len() int {
- return b.w - b.r
-}
-
-// Write copies bytes from p into the buffer.
-// It is an error to write more data than the buffer can hold.
-func (b *fixedBuffer) Write(p []byte) (n int, err error) {
- // Slide existing data to beginning.
- if b.r > 0 && len(p) > len(b.buf)-b.w {
- copy(b.buf, b.buf[b.r:b.w])
- b.w -= b.r
- b.r = 0
- }
-
- // Write new data.
- n = copy(b.buf[b.w:], p)
- b.w += n
- if n < len(p) {
- err = errWriteFull
- }
- return n, err
-}
diff --git a/vendor/golang.org/x/net/http2/fixed_buffer_test.go b/vendor/golang.org/x/net/http2/fixed_buffer_test.go
deleted file mode 100644
index f5432f8d8..000000000
--- a/vendor/golang.org/x/net/http2/fixed_buffer_test.go
+++ /dev/null
@@ -1,128 +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 http2
-
-import (
- "reflect"
- "testing"
-)
-
-var bufferReadTests = []struct {
- buf fixedBuffer
- read, wn int
- werr error
- wp []byte
- wbuf fixedBuffer
-}{
- {
- fixedBuffer{[]byte{'a', 0}, 0, 1},
- 5, 1, nil, []byte{'a'},
- fixedBuffer{[]byte{'a', 0}, 0, 0},
- },
- {
- fixedBuffer{[]byte{0, 'a'}, 1, 2},
- 5, 1, nil, []byte{'a'},
- fixedBuffer{[]byte{0, 'a'}, 0, 0},
- },
- {
- fixedBuffer{[]byte{'a', 'b'}, 0, 2},
- 1, 1, nil, []byte{'a'},
- fixedBuffer{[]byte{'a', 'b'}, 1, 2},
- },
- {
- fixedBuffer{[]byte{}, 0, 0},
- 5, 0, errReadEmpty, []byte{},
- fixedBuffer{[]byte{}, 0, 0},
- },
-}
-
-func TestBufferRead(t *testing.T) {
- for i, tt := range bufferReadTests {
- read := make([]byte, tt.read)
- n, err := tt.buf.Read(read)
- if n != tt.wn {
- t.Errorf("#%d: wn = %d want %d", i, n, tt.wn)
- continue
- }
- if err != tt.werr {
- t.Errorf("#%d: werr = %v want %v", i, err, tt.werr)
- continue
- }
- read = read[:n]
- if !reflect.DeepEqual(read, tt.wp) {
- t.Errorf("#%d: read = %+v want %+v", i, read, tt.wp)
- }
- if !reflect.DeepEqual(tt.buf, tt.wbuf) {
- t.Errorf("#%d: buf = %+v want %+v", i, tt.buf, tt.wbuf)
- }
- }
-}
-
-var bufferWriteTests = []struct {
- buf fixedBuffer
- write, wn int
- werr error
- wbuf fixedBuffer
-}{
- {
- buf: fixedBuffer{
- buf: []byte{},
- },
- wbuf: fixedBuffer{
- buf: []byte{},
- },
- },
- {
- buf: fixedBuffer{
- buf: []byte{1, 'a'},
- },
- write: 1,
- wn: 1,
- wbuf: fixedBuffer{
- buf: []byte{0, 'a'},
- w: 1,
- },
- },
- {
- buf: fixedBuffer{
- buf: []byte{'a', 1},
- r: 1,
- w: 1,
- },
- write: 2,
- wn: 2,
- wbuf: fixedBuffer{
- buf: []byte{0, 0},
- w: 2,
- },
- },
- {
- buf: fixedBuffer{
- buf: []byte{},
- },
- write: 5,
- werr: errWriteFull,
- wbuf: fixedBuffer{
- buf: []byte{},
- },
- },
-}
-
-func TestBufferWrite(t *testing.T) {
- for i, tt := range bufferWriteTests {
- n, err := tt.buf.Write(make([]byte, tt.write))
- if n != tt.wn {
- t.Errorf("#%d: wrote %d bytes; want %d", i, n, tt.wn)
- continue
- }
- if err != tt.werr {
- t.Errorf("#%d: error = %v; want %v", i, err, tt.werr)
- continue
- }
- if !reflect.DeepEqual(tt.buf, tt.wbuf) {
- t.Errorf("#%d: buf = %+v; want %+v", i, tt.buf, tt.wbuf)
- }
- }
-}
diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go
index 358833fed..3b1489072 100644
--- a/vendor/golang.org/x/net/http2/frame.go
+++ b/vendor/golang.org/x/net/http2/frame.go
@@ -122,7 +122,7 @@ var flagName = map[FrameType]map[Flags]string{
// a frameParser parses a frame given its FrameHeader and payload
// bytes. The length of payload will always equal fh.Length (which
// might be 0).
-type frameParser func(fh FrameHeader, payload []byte) (Frame, error)
+type frameParser func(fc *frameCache, fh FrameHeader, payload []byte) (Frame, error)
var frameParsers = map[FrameType]frameParser{
FrameData: parseDataFrame,
@@ -312,7 +312,7 @@ type Framer struct {
MaxHeaderListSize uint32
// TODO: track which type of frame & with which flags was sent
- // last. Then return an error (unless AllowIllegalWrites) if
+ // last. Then return an error (unless AllowIllegalWrites) if
// we're in the middle of a header block and a
// non-Continuation or Continuation on a different stream is
// attempted to be written.
@@ -323,6 +323,8 @@ type Framer struct {
debugFramerBuf *bytes.Buffer
debugReadLoggerf func(string, ...interface{})
debugWriteLoggerf func(string, ...interface{})
+
+ frameCache *frameCache // nil if frames aren't reused (default)
}
func (fr *Framer) maxHeaderListSize() uint32 {
@@ -398,6 +400,27 @@ const (
maxFrameSize = 1<<24 - 1
)
+// SetReuseFrames allows the Framer to reuse Frames.
+// If called on a Framer, Frames returned by calls to ReadFrame are only
+// valid until the next call to ReadFrame.
+func (fr *Framer) SetReuseFrames() {
+ if fr.frameCache != nil {
+ return
+ }
+ fr.frameCache = &frameCache{}
+}
+
+type frameCache struct {
+ dataFrame DataFrame
+}
+
+func (fc *frameCache) getDataFrame() *DataFrame {
+ if fc == nil {
+ return &DataFrame{}
+ }
+ return &fc.dataFrame
+}
+
// NewFramer returns a Framer that writes frames to w and reads them from r.
func NewFramer(w io.Writer, r io.Reader) *Framer {
fr := &Framer{
@@ -477,7 +500,7 @@ func (fr *Framer) ReadFrame() (Frame, error) {
if _, err := io.ReadFull(fr.r, payload); err != nil {
return nil, err
}
- f, err := typeFrameParser(fh.Type)(fh, payload)
+ f, err := typeFrameParser(fh.Type)(fr.frameCache, fh, payload)
if err != nil {
if ce, ok := err.(connError); ok {
return nil, fr.connError(ce.Code, ce.Reason)
@@ -565,7 +588,7 @@ func (f *DataFrame) Data() []byte {
return f.data
}
-func parseDataFrame(fh FrameHeader, payload []byte) (Frame, error) {
+func parseDataFrame(fc *frameCache, fh FrameHeader, payload []byte) (Frame, error) {
if fh.StreamID == 0 {
// DATA frames MUST be associated with a stream. If a
// DATA frame is received whose stream identifier
@@ -574,9 +597,9 @@ func parseDataFrame(fh FrameHeader, payload []byte) (Frame, error) {
// PROTOCOL_ERROR.
return nil, connError{ErrCodeProtocol, "DATA frame with stream ID 0"}
}
- f := &DataFrame{
- FrameHeader: fh,
- }
+ f := fc.getDataFrame()
+ f.FrameHeader = fh
+
var padSize byte
if fh.Flags.Has(FlagDataPadded) {
var err error
@@ -600,6 +623,7 @@ var (
errStreamID = errors.New("invalid stream ID")
errDepStreamID = errors.New("invalid dependent stream ID")
errPadLength = errors.New("pad length too large")
+ errPadBytes = errors.New("padding bytes must all be zeros unless AllowIllegalWrites is enabled")
)
func validStreamIDOrZero(streamID uint32) bool {
@@ -623,6 +647,7 @@ func (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error {
//
// If pad is nil, the padding bit is not sent.
// The length of pad must not exceed 255 bytes.
+// The bytes of pad must all be zero, unless f.AllowIllegalWrites is set.
//
// It will perform exactly one Write to the underlying Writer.
// It is the caller's responsibility not to violate the maximum frame size
@@ -631,8 +656,18 @@ func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []by
if !validStreamID(streamID) && !f.AllowIllegalWrites {
return errStreamID
}
- if len(pad) > 255 {
- return errPadLength
+ if len(pad) > 0 {
+ if len(pad) > 255 {
+ return errPadLength
+ }
+ if !f.AllowIllegalWrites {
+ for _, b := range pad {
+ if b != 0 {
+ // "Padding octets MUST be set to zero when sending."
+ return errPadBytes
+ }
+ }
+ }
}
var flags Flags
if endStream {
@@ -660,10 +695,10 @@ type SettingsFrame struct {
p []byte
}
-func parseSettingsFrame(fh FrameHeader, p []byte) (Frame, error) {
+func parseSettingsFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
if fh.Flags.Has(FlagSettingsAck) && fh.Length > 0 {
// When this (ACK 0x1) bit is set, the payload of the
- // SETTINGS frame MUST be empty. Receipt of a
+ // SETTINGS frame MUST be empty. Receipt of a
// SETTINGS frame with the ACK flag set and a length
// field value other than 0 MUST be treated as a
// connection error (Section 5.4.1) of type
@@ -672,7 +707,7 @@ func parseSettingsFrame(fh FrameHeader, p []byte) (Frame, error) {
}
if fh.StreamID != 0 {
// SETTINGS frames always apply to a connection,
- // never a single stream. The stream identifier for a
+ // never a single stream. The stream identifier for a
// SETTINGS frame MUST be zero (0x0). If an endpoint
// receives a SETTINGS frame whose stream identifier
// field is anything other than 0x0, the endpoint MUST
@@ -762,7 +797,7 @@ type PingFrame struct {
func (f *PingFrame) IsAck() bool { return f.Flags.Has(FlagPingAck) }
-func parsePingFrame(fh FrameHeader, payload []byte) (Frame, error) {
+func parsePingFrame(_ *frameCache, fh FrameHeader, payload []byte) (Frame, error) {
if len(payload) != 8 {
return nil, ConnectionError(ErrCodeFrameSize)
}
@@ -802,7 +837,7 @@ func (f *GoAwayFrame) DebugData() []byte {
return f.debugData
}
-func parseGoAwayFrame(fh FrameHeader, p []byte) (Frame, error) {
+func parseGoAwayFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
if fh.StreamID != 0 {
return nil, ConnectionError(ErrCodeProtocol)
}
@@ -842,7 +877,7 @@ func (f *UnknownFrame) Payload() []byte {
return f.p
}
-func parseUnknownFrame(fh FrameHeader, p []byte) (Frame, error) {
+func parseUnknownFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
return &UnknownFrame{fh, p}, nil
}
@@ -853,7 +888,7 @@ type WindowUpdateFrame struct {
Increment uint32 // never read with high bit set
}
-func parseWindowUpdateFrame(fh FrameHeader, p []byte) (Frame, error) {
+func parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
if len(p) != 4 {
return nil, ConnectionError(ErrCodeFrameSize)
}
@@ -918,12 +953,12 @@ func (f *HeadersFrame) HasPriority() bool {
return f.FrameHeader.Flags.Has(FlagHeadersPriority)
}
-func parseHeadersFrame(fh FrameHeader, p []byte) (_ Frame, err error) {
+func parseHeadersFrame(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err error) {
hf := &HeadersFrame{
FrameHeader: fh,
}
if fh.StreamID == 0 {
- // HEADERS frames MUST be associated with a stream. If a HEADERS frame
+ // HEADERS frames MUST be associated with a stream. If a HEADERS frame
// is received whose stream identifier field is 0x0, the recipient MUST
// respond with a connection error (Section 5.4.1) of type
// PROTOCOL_ERROR.
@@ -1045,7 +1080,7 @@ type PriorityParam struct {
Exclusive bool
// Weight is the stream's zero-indexed weight. It should be
- // set together with StreamDep, or neither should be set. Per
+ // set together with StreamDep, or neither should be set. Per
// the spec, "Add one to the value to obtain a weight between
// 1 and 256."
Weight uint8
@@ -1055,7 +1090,7 @@ func (p PriorityParam) IsZero() bool {
return p == PriorityParam{}
}
-func parsePriorityFrame(fh FrameHeader, payload []byte) (Frame, error) {
+func parsePriorityFrame(_ *frameCache, fh FrameHeader, payload []byte) (Frame, error) {
if fh.StreamID == 0 {
return nil, connError{ErrCodeProtocol, "PRIORITY frame with stream ID 0"}
}
@@ -1102,7 +1137,7 @@ type RSTStreamFrame struct {
ErrCode ErrCode
}
-func parseRSTStreamFrame(fh FrameHeader, p []byte) (Frame, error) {
+func parseRSTStreamFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
if len(p) != 4 {
return nil, ConnectionError(ErrCodeFrameSize)
}
@@ -1132,7 +1167,7 @@ type ContinuationFrame struct {
headerFragBuf []byte
}
-func parseContinuationFrame(fh FrameHeader, p []byte) (Frame, error) {
+func parseContinuationFrame(_ *frameCache, fh FrameHeader, p []byte) (Frame, error) {
if fh.StreamID == 0 {
return nil, connError{ErrCodeProtocol, "CONTINUATION frame with stream ID 0"}
}
@@ -1182,7 +1217,7 @@ func (f *PushPromiseFrame) HeadersEnded() bool {
return f.FrameHeader.Flags.Has(FlagPushPromiseEndHeaders)
}
-func parsePushPromise(fh FrameHeader, p []byte) (_ Frame, err error) {
+func parsePushPromise(_ *frameCache, fh FrameHeader, p []byte) (_ Frame, err error) {
pp := &PushPromiseFrame{
FrameHeader: fh,
}
diff --git a/vendor/golang.org/x/net/http2/frame_test.go b/vendor/golang.org/x/net/http2/frame_test.go
index 7b1933d96..37266bc58 100644
--- a/vendor/golang.org/x/net/http2/frame_test.go
+++ b/vendor/golang.org/x/net/http2/frame_test.go
@@ -141,7 +141,7 @@ func TestWriteDataPadded(t *testing.T) {
streamID: 1,
endStream: false,
data: []byte("foo"),
- pad: []byte("bar"),
+ pad: []byte{0, 0, 0},
wantHeader: FrameHeader{
Type: FrameData,
Flags: FlagDataPadded,
@@ -1096,6 +1096,95 @@ func TestMetaFrameHeader(t *testing.T) {
}
}
+func TestSetReuseFrames(t *testing.T) {
+ fr, buf := testFramer()
+ fr.SetReuseFrames()
+
+ // Check that DataFrames are reused. Note that
+ // SetReuseFrames only currently implements reuse of DataFrames.
+ firstDf := readAndVerifyDataFrame("ABC", 3, fr, buf, t)
+
+ for i := 0; i < 10; i++ {
+ df := readAndVerifyDataFrame("XYZ", 3, fr, buf, t)
+ if df != firstDf {
+ t.Errorf("Expected Framer to return references to the same DataFrame. Have %v and %v", &df, &firstDf)
+ }
+ }
+
+ for i := 0; i < 10; i++ {
+ df := readAndVerifyDataFrame("", 0, fr, buf, t)
+ if df != firstDf {
+ t.Errorf("Expected Framer to return references to the same DataFrame. Have %v and %v", &df, &firstDf)
+ }
+ }
+
+ for i := 0; i < 10; i++ {
+ df := readAndVerifyDataFrame("HHH", 3, fr, buf, t)
+ if df != firstDf {
+ t.Errorf("Expected Framer to return references to the same DataFrame. Have %v and %v", &df, &firstDf)
+ }
+ }
+}
+
+func TestSetReuseFramesMoreThanOnce(t *testing.T) {
+ fr, buf := testFramer()
+ fr.SetReuseFrames()
+
+ firstDf := readAndVerifyDataFrame("ABC", 3, fr, buf, t)
+ fr.SetReuseFrames()
+
+ for i := 0; i < 10; i++ {
+ df := readAndVerifyDataFrame("XYZ", 3, fr, buf, t)
+ // SetReuseFrames should be idempotent
+ fr.SetReuseFrames()
+ if df != firstDf {
+ t.Errorf("Expected Framer to return references to the same DataFrame. Have %v and %v", &df, &firstDf)
+ }
+ }
+}
+
+func TestNoSetReuseFrames(t *testing.T) {
+ fr, buf := testFramer()
+ const numNewDataFrames = 10
+ dfSoFar := make([]interface{}, numNewDataFrames)
+
+ // Check that DataFrames are not reused if SetReuseFrames wasn't called.
+ // SetReuseFrames only currently implements reuse of DataFrames.
+ for i := 0; i < numNewDataFrames; i++ {
+ df := readAndVerifyDataFrame("XYZ", 3, fr, buf, t)
+ for _, item := range dfSoFar {
+ if df == item {
+ t.Errorf("Expected Framer to return new DataFrames since SetNoReuseFrames not set.")
+ }
+ }
+ dfSoFar[i] = df
+ }
+}
+
+func readAndVerifyDataFrame(data string, length byte, fr *Framer, buf *bytes.Buffer, t *testing.T) *DataFrame {
+ var streamID uint32 = 1<<24 + 2<<16 + 3<<8 + 4
+ fr.WriteData(streamID, true, []byte(data))
+ wantEnc := "\x00\x00" + string(length) + "\x00\x01\x01\x02\x03\x04" + data
+ if buf.String() != wantEnc {
+ t.Errorf("encoded as %q; want %q", buf.Bytes(), wantEnc)
+ }
+ f, err := fr.ReadFrame()
+ if err != nil {
+ t.Fatal(err)
+ }
+ df, ok := f.(*DataFrame)
+ if !ok {
+ t.Fatalf("got %T; want *DataFrame", f)
+ }
+ if !bytes.Equal(df.Data(), []byte(data)) {
+ t.Errorf("got %q; want %q", df.Data(), []byte(data))
+ }
+ if f.Header().Flags&1 == 0 {
+ t.Errorf("didn't see END_STREAM flag")
+ }
+ return df
+}
+
func encodeHeaderRaw(t *testing.T, pairs ...string) []byte {
var he hpackEncoder
return he.encodeHeaderRaw(t, pairs...)
diff --git a/vendor/golang.org/x/net/http2/go18.go b/vendor/golang.org/x/net/http2/go18.go
index 633202c39..73cc2381f 100644
--- a/vendor/golang.org/x/net/http2/go18.go
+++ b/vendor/golang.org/x/net/http2/go18.go
@@ -12,7 +12,11 @@ import (
"net/http"
)
-func cloneTLSConfig(c *tls.Config) *tls.Config { return c.Clone() }
+func cloneTLSConfig(c *tls.Config) *tls.Config {
+ c2 := c.Clone()
+ c2.GetClientCertificate = c.GetClientCertificate // golang.org/issue/19264
+ return c2
+}
var _ http.Pusher = (*responseWriter)(nil)
diff --git a/vendor/golang.org/x/net/http2/go18_test.go b/vendor/golang.org/x/net/http2/go18_test.go
index 836550597..30e3b038b 100644
--- a/vendor/golang.org/x/net/http2/go18_test.go
+++ b/vendor/golang.org/x/net/http2/go18_test.go
@@ -7,6 +7,7 @@
package http2
import (
+ "crypto/tls"
"net/http"
"testing"
"time"
@@ -64,3 +65,15 @@ func TestConfigureServerIdleTimeout_Go18(t *testing.T) {
}
}
}
+
+func TestCertClone(t *testing.T) {
+ c := &tls.Config{
+ GetClientCertificate: func(*tls.CertificateRequestInfo) (*tls.Certificate, error) {
+ panic("shouldn't be called")
+ },
+ }
+ c2 := cloneTLSConfig(c)
+ if c2.GetClientCertificate == nil {
+ t.Error("GetClientCertificate is nil")
+ }
+}
diff --git a/vendor/golang.org/x/net/http2/hpack/encode.go b/vendor/golang.org/x/net/http2/hpack/encode.go
index f9bb03398..54726c2a3 100644
--- a/vendor/golang.org/x/net/http2/hpack/encode.go
+++ b/vendor/golang.org/x/net/http2/hpack/encode.go
@@ -39,13 +39,14 @@ func NewEncoder(w io.Writer) *Encoder {
tableSizeUpdate: false,
w: w,
}
+ e.dynTab.table.init()
e.dynTab.setMaxSize(initialHeaderTableSize)
return e
}
// WriteField encodes f into a single Write to e's underlying Writer.
// This function may also produce bytes for "Header Table Size Update"
-// if necessary. If produced, it is done before encoding f.
+// if necessary. If produced, it is done before encoding f.
func (e *Encoder) WriteField(f HeaderField) error {
e.buf = e.buf[:0]
@@ -88,29 +89,17 @@ func (e *Encoder) WriteField(f HeaderField) error {
// only name matches, i points to that index and nameValueMatch
// becomes false.
func (e *Encoder) searchTable(f HeaderField) (i uint64, nameValueMatch bool) {
- for idx, hf := range staticTable {
- if !constantTimeStringCompare(hf.Name, f.Name) {
- continue
- }
- if i == 0 {
- i = uint64(idx + 1)
- }
- if f.Sensitive {
- continue
- }
- if !constantTimeStringCompare(hf.Value, f.Value) {
- continue
- }
- i = uint64(idx + 1)
- nameValueMatch = true
- return
+ i, nameValueMatch = staticTable.search(f)
+ if nameValueMatch {
+ return i, true
}
- j, nameValueMatch := e.dynTab.search(f)
+ j, nameValueMatch := e.dynTab.table.search(f)
if nameValueMatch || (i == 0 && j != 0) {
- i = j + uint64(len(staticTable))
+ return j + uint64(staticTable.len()), nameValueMatch
}
- return
+
+ return i, false
}
// SetMaxDynamicTableSize changes the dynamic header table size to v.
diff --git a/vendor/golang.org/x/net/http2/hpack/encode_test.go b/vendor/golang.org/x/net/http2/hpack/encode_test.go
index 92286f3ba..05f12db9c 100644
--- a/vendor/golang.org/x/net/http2/hpack/encode_test.go
+++ b/vendor/golang.org/x/net/http2/hpack/encode_test.go
@@ -7,6 +7,8 @@ package hpack
import (
"bytes"
"encoding/hex"
+ "fmt"
+ "math/rand"
"reflect"
"strings"
"testing"
@@ -101,17 +103,20 @@ func TestEncoderSearchTable(t *testing.T) {
wantMatch bool
}{
// Name and Value match
- {pair("foo", "bar"), uint64(len(staticTable) + 3), true},
- {pair("blake", "miz"), uint64(len(staticTable) + 2), true},
+ {pair("foo", "bar"), uint64(staticTable.len()) + 3, true},
+ {pair("blake", "miz"), uint64(staticTable.len()) + 2, true},
{pair(":method", "GET"), 2, true},
- // Only name match because Sensitive == true
- {HeaderField{":method", "GET", true}, 2, false},
+ // Only name match because Sensitive == true. This is allowed to match
+ // any ":method" entry. The current implementation uses the last entry
+ // added in newStaticTable.
+ {HeaderField{":method", "GET", true}, 3, false},
// Only Name matches
- {pair("foo", "..."), uint64(len(staticTable) + 3), false},
- {pair("blake", "..."), uint64(len(staticTable) + 2), false},
- {pair(":method", "..."), 2, false},
+ {pair("foo", "..."), uint64(staticTable.len()) + 3, false},
+ {pair("blake", "..."), uint64(staticTable.len()) + 2, false},
+ // As before, this is allowed to match any ":method" entry.
+ {pair(":method", "..."), 3, false},
// None match
{pair("foo-", "bar"), 0, false},
@@ -328,3 +333,54 @@ func TestEncoderSetMaxDynamicTableSizeLimit(t *testing.T) {
func removeSpace(s string) string {
return strings.Replace(s, " ", "", -1)
}
+
+func BenchmarkEncoderSearchTable(b *testing.B) {
+ e := NewEncoder(nil)
+
+ // A sample of possible header fields.
+ // This is not based on any actual data from HTTP/2 traces.
+ var possible []HeaderField
+ for _, f := range staticTable.ents {
+ if f.Value == "" {
+ possible = append(possible, f)
+ continue
+ }
+ // Generate 5 random values, except for cookie and set-cookie,
+ // which we know can have many values in practice.
+ num := 5
+ if f.Name == "cookie" || f.Name == "set-cookie" {
+ num = 25
+ }
+ for i := 0; i < num; i++ {
+ f.Value = fmt.Sprintf("%s-%d", f.Name, i)
+ possible = append(possible, f)
+ }
+ }
+ for k := 0; k < 10; k++ {
+ f := HeaderField{
+ Name: fmt.Sprintf("x-header-%d", k),
+ Sensitive: rand.Int()%2 == 0,
+ }
+ for i := 0; i < 5; i++ {
+ f.Value = fmt.Sprintf("%s-%d", f.Name, i)
+ possible = append(possible, f)
+ }
+ }
+
+ // Add a random sample to the dynamic table. This very loosely simulates
+ // a history of 100 requests with 20 header fields per request.
+ for r := 0; r < 100*20; r++ {
+ f := possible[rand.Int31n(int32(len(possible)))]
+ // Skip if this is in the staticTable verbatim.
+ if _, has := staticTable.search(f); !has {
+ e.dynTab.add(f)
+ }
+ }
+
+ b.ResetTimer()
+ for n := 0; n < b.N; n++ {
+ for _, f := range possible {
+ e.searchTable(f)
+ }
+ }
+}
diff --git a/vendor/golang.org/x/net/http2/hpack/hpack.go b/vendor/golang.org/x/net/http2/hpack/hpack.go
index 135b9f62c..176644acd 100644
--- a/vendor/golang.org/x/net/http2/hpack/hpack.go
+++ b/vendor/golang.org/x/net/http2/hpack/hpack.go
@@ -61,7 +61,7 @@ func (hf HeaderField) String() string {
func (hf HeaderField) Size() uint32 {
// http://http2.github.io/http2-spec/compression.html#rfc.section.4.1
// "The size of the dynamic table is the sum of the size of
- // its entries. The size of an entry is the sum of its name's
+ // its entries. The size of an entry is the sum of its name's
// length in octets (as defined in Section 5.2), its value's
// length in octets (see Section 5.2), plus 32. The size of
// an entry is calculated using the length of the name and
@@ -102,6 +102,7 @@ func NewDecoder(maxDynamicTableSize uint32, emitFunc func(f HeaderField)) *Decod
emit: emitFunc,
emitEnabled: true,
}
+ d.dynTab.table.init()
d.dynTab.allowedMaxSize = maxDynamicTableSize
d.dynTab.setMaxSize(maxDynamicTableSize)
return d
@@ -154,12 +155,9 @@ func (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) {
}
type dynamicTable struct {
- // ents is the FIFO described at
// http://http2.github.io/http2-spec/compression.html#rfc.section.2.3.2
- // The newest (low index) is append at the end, and items are
- // evicted from the front.
- ents []HeaderField
- size uint32
+ table headerFieldTable
+ size uint32 // in bytes
maxSize uint32 // current maxSize
allowedMaxSize uint32 // maxSize may go up to this, inclusive
}
@@ -169,95 +167,45 @@ func (dt *dynamicTable) setMaxSize(v uint32) {
dt.evict()
}
-// TODO: change dynamicTable to be a struct with a slice and a size int field,
-// per http://http2.github.io/http2-spec/compression.html#rfc.section.4.1:
-//
-//
-// Then make add increment the size. maybe the max size should move from Decoder to
-// dynamicTable and add should return an ok bool if there was enough space.
-//
-// Later we'll need a remove operation on dynamicTable.
-
func (dt *dynamicTable) add(f HeaderField) {
- dt.ents = append(dt.ents, f)
+ dt.table.addEntry(f)
dt.size += f.Size()
dt.evict()
}
-// If we're too big, evict old stuff (front of the slice)
+// If we're too big, evict old stuff.
func (dt *dynamicTable) evict() {
- base := dt.ents // keep base pointer of slice
- for dt.size > dt.maxSize {
- dt.size -= dt.ents[0].Size()
- dt.ents = dt.ents[1:]
- }
-
- // Shift slice contents down if we evicted things.
- if len(dt.ents) != len(base) {
- copy(base, dt.ents)
- dt.ents = base[:len(dt.ents)]
+ var n int
+ for dt.size > dt.maxSize && n < dt.table.len() {
+ dt.size -= dt.table.ents[n].Size()
+ n++
}
-}
-
-// constantTimeStringCompare compares string a and b in a constant
-// time manner.
-func constantTimeStringCompare(a, b string) bool {
- if len(a) != len(b) {
- return false
- }
-
- c := byte(0)
-
- for i := 0; i < len(a); i++ {
- c |= a[i] ^ b[i]
- }
-
- return c == 0
-}
-
-// Search searches f in the table. The return value i is 0 if there is
-// no name match. If there is name match or name/value match, i is the
-// index of that entry (1-based). If both name and value match,
-// nameValueMatch becomes true.
-func (dt *dynamicTable) search(f HeaderField) (i uint64, nameValueMatch bool) {
- l := len(dt.ents)
- for j := l - 1; j >= 0; j-- {
- ent := dt.ents[j]
- if !constantTimeStringCompare(ent.Name, f.Name) {
- continue
- }
- if i == 0 {
- i = uint64(l - j)
- }
- if f.Sensitive {
- continue
- }
- if !constantTimeStringCompare(ent.Value, f.Value) {
- continue
- }
- i = uint64(l - j)
- nameValueMatch = true
- return
- }
- return
+ dt.table.evictOldest(n)
}
func (d *Decoder) maxTableIndex() int {
- return len(d.dynTab.ents) + len(staticTable)
+ // This should never overflow. RFC 7540 Section 6.5.2 limits the size of
+ // the dynamic table to 2^32 bytes, where each entry will occupy more than
+ // one byte. Further, the staticTable has a fixed, small length.
+ return d.dynTab.table.len() + staticTable.len()
}
func (d *Decoder) at(i uint64) (hf HeaderField, ok bool) {
- if i < 1 {
+ // See Section 2.3.3.
+ if i == 0 {
return
}
+ if i <= uint64(staticTable.len()) {
+ return staticTable.ents[i-1], true
+ }
if i > uint64(d.maxTableIndex()) {
return
}
- if i <= uint64(len(staticTable)) {
- return staticTable[i-1], true
- }
- dents := d.dynTab.ents
- return dents[len(dents)-(int(i)-len(staticTable))], true
+ // In the dynamic table, newer entries have lower indices.
+ // However, dt.ents[0] is the oldest entry. Hence, dt.ents is
+ // the reversed dynamic table.
+ dt := d.dynTab.table
+ return dt.ents[dt.len()-(int(i)-staticTable.len())], true
}
// Decode decodes an entire block.
@@ -307,7 +255,7 @@ func (d *Decoder) Write(p []byte) (n int, err error) {
err = d.parseHeaderFieldRepr()
if err == errNeedMore {
// Extra paranoia, making sure saveBuf won't
- // get too large. All the varint and string
+ // get too large. All the varint and string
// reading code earlier should already catch
// overlong things and return ErrStringLength,
// but keep this as a last resort.
diff --git a/vendor/golang.org/x/net/http2/hpack/hpack_test.go b/vendor/golang.org/x/net/http2/hpack/hpack_test.go
index 4c7b17bfb..c2f8fd102 100644
--- a/vendor/golang.org/x/net/http2/hpack/hpack_test.go
+++ b/vendor/golang.org/x/net/http2/hpack/hpack_test.go
@@ -5,117 +5,16 @@
package hpack
import (
- "bufio"
"bytes"
"encoding/hex"
"fmt"
"math/rand"
"reflect"
- "regexp"
- "strconv"
"strings"
"testing"
"time"
)
-func TestStaticTable(t *testing.T) {
- fromSpec := `
- +-------+-----------------------------+---------------+
- | 1 | :authority | |
- | 2 | :method | GET |
- | 3 | :method | POST |
- | 4 | :path | / |
- | 5 | :path | /index.html |
- | 6 | :scheme | http |
- | 7 | :scheme | https |
- | 8 | :status | 200 |
- | 9 | :status | 204 |
- | 10 | :status | 206 |
- | 11 | :status | 304 |
- | 12 | :status | 400 |
- | 13 | :status | 404 |
- | 14 | :status | 500 |
- | 15 | accept-charset | |
- | 16 | accept-encoding | gzip, deflate |
- | 17 | accept-language | |
- | 18 | accept-ranges | |
- | 19 | accept | |
- | 20 | access-control-allow-origin | |
- | 21 | age | |
- | 22 | allow | |
- | 23 | authorization | |
- | 24 | cache-control | |
- | 25 | content-disposition | |
- | 26 | content-encoding | |
- | 27 | content-language | |
- | 28 | content-length | |
- | 29 | content-location | |
- | 30 | content-range | |
- | 31 | content-type | |
- | 32 | cookie | |
- | 33 | date | |
- | 34 | etag | |
- | 35 | expect | |
- | 36 | expires | |
- | 37 | from | |
- | 38 | host | |
- | 39 | if-match | |
- | 40 | if-modified-since | |
- | 41 | if-none-match | |
- | 42 | if-range | |
- | 43 | if-unmodified-since | |
- | 44 | last-modified | |
- | 45 | link | |
- | 46 | location | |
- | 47 | max-forwards | |
- | 48 | proxy-authenticate | |
- | 49 | proxy-authorization | |
- | 50 | range | |
- | 51 | referer | |
- | 52 | refresh | |
- | 53 | retry-after | |
- | 54 | server | |
- | 55 | set-cookie | |
- | 56 | strict-transport-security | |
- | 57 | transfer-encoding | |
- | 58 | user-agent | |
- | 59 | vary | |
- | 60 | via | |
- | 61 | www-authenticate | |
- +-------+-----------------------------+---------------+
-`
- bs := bufio.NewScanner(strings.NewReader(fromSpec))
- re := regexp.MustCompile(`\| (\d+)\s+\| (\S+)\s*\| (\S(.*\S)?)?\s+\|`)
- for bs.Scan() {
- l := bs.Text()
- if !strings.Contains(l, "|") {
- continue
- }
- m := re.FindStringSubmatch(l)
- if m == nil {
- continue
- }
- i, err := strconv.Atoi(m[1])
- if err != nil {
- t.Errorf("Bogus integer on line %q", l)
- continue
- }
- if i < 1 || i > len(staticTable) {
- t.Errorf("Bogus index %d on line %q", i, l)
- continue
- }
- if got, want := staticTable[i-1].Name, m[2]; got != want {
- t.Errorf("header index %d name = %q; want %q", i, got, want)
- }
- if got, want := staticTable[i-1].Value, m[3]; got != want {
- t.Errorf("header index %d value = %q; want %q", i, got, want)
- }
- }
- if err := bs.Err(); err != nil {
- t.Error(err)
- }
-}
-
func (d *Decoder) mustAt(idx int) HeaderField {
if hf, ok := d.at(uint64(idx)); !ok {
panic(fmt.Sprintf("bogus index %d", idx))
@@ -132,10 +31,10 @@ func TestDynamicTableAt(t *testing.T) {
}
d.dynTab.add(pair("foo", "bar"))
d.dynTab.add(pair("blake", "miz"))
- if got, want := at(len(staticTable)+1), (pair("blake", "miz")); got != want {
+ if got, want := at(staticTable.len()+1), (pair("blake", "miz")); got != want {
t.Errorf("at(dyn 1) = %v; want %v", got, want)
}
- if got, want := at(len(staticTable)+2), (pair("foo", "bar")); got != want {
+ if got, want := at(staticTable.len()+2), (pair("foo", "bar")); got != want {
t.Errorf("at(dyn 2) = %v; want %v", got, want)
}
if got, want := at(3), (pair(":method", "POST")); got != want {
@@ -143,41 +42,6 @@ func TestDynamicTableAt(t *testing.T) {
}
}
-func TestDynamicTableSearch(t *testing.T) {
- dt := dynamicTable{}
- dt.setMaxSize(4096)
-
- dt.add(pair("foo", "bar"))
- dt.add(pair("blake", "miz"))
- dt.add(pair(":method", "GET"))
-
- tests := []struct {
- hf HeaderField
- wantI uint64
- wantMatch bool
- }{
- // Name and Value match
- {pair("foo", "bar"), 3, true},
- {pair(":method", "GET"), 1, true},
-
- // Only name match because of Sensitive == true
- {HeaderField{"blake", "miz", true}, 2, false},
-
- // Only Name matches
- {pair("foo", "..."), 3, false},
- {pair("blake", "..."), 2, false},
- {pair(":method", "..."), 1, false},
-
- // None match
- {pair("foo-", "bar"), 0, false},
- }
- for _, tt := range tests {
- if gotI, gotMatch := dt.search(tt.hf); gotI != tt.wantI || gotMatch != tt.wantMatch {
- t.Errorf("d.search(%+v) = %v, %v; want %v, %v", tt.hf, gotI, gotMatch, tt.wantI, tt.wantMatch)
- }
- }
-}
-
func TestDynamicTableSizeEvict(t *testing.T) {
d := NewDecoder(4096, nil)
if want := uint32(0); d.dynTab.size != want {
@@ -196,7 +60,7 @@ func TestDynamicTableSizeEvict(t *testing.T) {
if want := uint32(6 + 32); d.dynTab.size != want {
t.Fatalf("after setMaxSize, size = %d; want %d", d.dynTab.size, want)
}
- if got, want := d.mustAt(len(staticTable)+1), (pair("foo", "bar")); got != want {
+ if got, want := d.mustAt(staticTable.len()+1), (pair("foo", "bar")); got != want {
t.Errorf("at(dyn 1) = %v; want %v", got, want)
}
add(pair("long", strings.Repeat("x", 500)))
@@ -255,9 +119,9 @@ func TestDecoderDecode(t *testing.T) {
}
func (dt *dynamicTable) reverseCopy() (hf []HeaderField) {
- hf = make([]HeaderField, len(dt.ents))
+ hf = make([]HeaderField, len(dt.table.ents))
for i := range hf {
- hf[i] = dt.ents[len(dt.ents)-1-i]
+ hf[i] = dt.table.ents[len(dt.table.ents)-1-i]
}
return
}
diff --git a/vendor/golang.org/x/net/http2/hpack/tables.go b/vendor/golang.org/x/net/http2/hpack/tables.go
index b9283a023..870159244 100644
--- a/vendor/golang.org/x/net/http2/hpack/tables.go
+++ b/vendor/golang.org/x/net/http2/hpack/tables.go
@@ -4,73 +4,199 @@
package hpack
+import (
+ "fmt"
+)
+
+// headerFieldTable implements a list of HeaderFields.
+// This is used to implement the static and dynamic tables.
+type headerFieldTable struct {
+ // For static tables, entries are never evicted.
+ //
+ // For dynamic tables, entries are evicted from ents[0] and added to the end.
+ // Each entry has a unique id that starts at one and increments for each
+ // entry that is added. This unique id is stable across evictions, meaning
+ // it can be used as a pointer to a specific entry. As in hpack, unique ids
+ // are 1-based. The unique id for ents[k] is k + evictCount + 1.
+ //
+ // Zero is not a valid unique id.
+ //
+ // evictCount should not overflow in any remotely practical situation. In
+ // practice, we will have one dynamic table per HTTP/2 connection. If we
+ // assume a very powerful server that handles 1M QPS per connection and each
+ // request adds (then evicts) 100 entries from the table, it would still take
+ // 2M years for evictCount to overflow.
+ ents []HeaderField
+ evictCount uint64
+
+ // byName maps a HeaderField name to the unique id of the newest entry with
+ // the same name. See above for a definition of "unique id".
+ byName map[string]uint64
+
+ // byNameValue maps a HeaderField name/value pair to the unique id of the newest
+ // entry with the same name and value. See above for a definition of "unique id".
+ byNameValue map[pairNameValue]uint64
+}
+
+type pairNameValue struct {
+ name, value string
+}
+
+func (t *headerFieldTable) init() {
+ t.byName = make(map[string]uint64)
+ t.byNameValue = make(map[pairNameValue]uint64)
+}
+
+// len reports the number of entries in the table.
+func (t *headerFieldTable) len() int {
+ return len(t.ents)
+}
+
+// addEntry adds a new entry.
+func (t *headerFieldTable) addEntry(f HeaderField) {
+ id := uint64(t.len()) + t.evictCount + 1
+ t.byName[f.Name] = id
+ t.byNameValue[pairNameValue{f.Name, f.Value}] = id
+ t.ents = append(t.ents, f)
+}
+
+// evictOldest evicts the n oldest entries in the table.
+func (t *headerFieldTable) evictOldest(n int) {
+ if n > t.len() {
+ panic(fmt.Sprintf("evictOldest(%v) on table with %v entries", n, t.len()))
+ }
+ for k := 0; k < n; k++ {
+ f := t.ents[k]
+ id := t.evictCount + uint64(k) + 1
+ if t.byName[f.Name] == id {
+ t.byName[f.Name] = 0
+ }
+ if p := (pairNameValue{f.Name, f.Value}); t.byNameValue[p] == id {
+ t.byNameValue[p] = 0
+ }
+ }
+ copy(t.ents, t.ents[n:])
+ for k := t.len() - n; k < t.len(); k++ {
+ t.ents[k] = HeaderField{} // so strings can be garbage collected
+ }
+ t.ents = t.ents[:t.len()-n]
+ if t.evictCount+uint64(n) < t.evictCount {
+ panic("evictCount overflow")
+ }
+ t.evictCount += uint64(n)
+}
+
+// search finds f in the table. If there is no match, i is 0.
+// If both name and value match, i is the matched index and nameValueMatch
+// becomes true. If only name matches, i points to that index and
+// nameValueMatch becomes false.
+//
+// The returned index is a 1-based HPACK index. For dynamic tables, HPACK says
+// that index 1 should be the newest entry, but t.ents[0] is the oldest entry,
+// meaning t.ents is reversed for dynamic tables. Hence, when t is a dynamic
+// table, the return value i actually refers to the entry t.ents[t.len()-i].
+//
+// All tables are assumed to be a dynamic tables except for the global
+// staticTable pointer.
+//
+// See Section 2.3.3.
+func (t *headerFieldTable) search(f HeaderField) (i uint64, nameValueMatch bool) {
+ if !f.Sensitive {
+ if id := t.byNameValue[pairNameValue{f.Name, f.Value}]; id != 0 {
+ return t.idToIndex(id), true
+ }
+ }
+ if id := t.byName[f.Name]; id != 0 {
+ return t.idToIndex(id), false
+ }
+ return 0, false
+}
+
+// idToIndex converts a unique id to an HPACK index.
+// See Section 2.3.3.
+func (t *headerFieldTable) idToIndex(id uint64) uint64 {
+ if id <= t.evictCount {
+ panic(fmt.Sprintf("id (%v) <= evictCount (%v)", id, t.evictCount))
+ }
+ k := id - t.evictCount - 1 // convert id to an index t.ents[k]
+ if t != staticTable {
+ return uint64(t.len()) - k // dynamic table
+ }
+ return k + 1
+}
+
func pair(name, value string) HeaderField {
return HeaderField{Name: name, Value: value}
}
// http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07#appendix-B
-var staticTable = [...]HeaderField{
- pair(":authority", ""), // index 1 (1-based)
- pair(":method", "GET"),
- pair(":method", "POST"),
- pair(":path", "/"),
- pair(":path", "/index.html"),
- pair(":scheme", "http"),
- pair(":scheme", "https"),
- pair(":status", "200"),
- pair(":status", "204"),
- pair(":status", "206"),
- pair(":status", "304"),
- pair(":status", "400"),
- pair(":status", "404"),
- pair(":status", "500"),
- pair("accept-charset", ""),
- pair("accept-encoding", "gzip, deflate"),
- pair("accept-language", ""),
- pair("accept-ranges", ""),
- pair("accept", ""),
- pair("access-control-allow-origin", ""),
- pair("age", ""),
- pair("allow", ""),
- pair("authorization", ""),
- pair("cache-control", ""),
- pair("content-disposition", ""),
- pair("content-encoding", ""),
- pair("content-language", ""),
- pair("content-length", ""),
- pair("content-location", ""),
- pair("content-range", ""),
- pair("content-type", ""),
- pair("cookie", ""),
- pair("date", ""),
- pair("etag", ""),
- pair("expect", ""),
- pair("expires", ""),
- pair("from", ""),
- pair("host", ""),
- pair("if-match", ""),
- pair("if-modified-since", ""),
- pair("if-none-match", ""),
- pair("if-range", ""),
- pair("if-unmodified-since", ""),
- pair("last-modified", ""),
- pair("link", ""),
- pair("location", ""),
- pair("max-forwards", ""),
- pair("proxy-authenticate", ""),
- pair("proxy-authorization", ""),
- pair("range", ""),
- pair("referer", ""),
- pair("refresh", ""),
- pair("retry-after", ""),
- pair("server", ""),
- pair("set-cookie", ""),
- pair("strict-transport-security", ""),
- pair("transfer-encoding", ""),
- pair("user-agent", ""),
- pair("vary", ""),
- pair("via", ""),
- pair("www-authenticate", ""),
+var staticTable = newStaticTable()
+
+func newStaticTable() *headerFieldTable {
+ t := &headerFieldTable{}
+ t.init()
+ t.addEntry(pair(":authority", ""))
+ t.addEntry(pair(":method", "GET"))
+ t.addEntry(pair(":method", "POST"))
+ t.addEntry(pair(":path", "/"))
+ t.addEntry(pair(":path", "/index.html"))
+ t.addEntry(pair(":scheme", "http"))
+ t.addEntry(pair(":scheme", "https"))
+ t.addEntry(pair(":status", "200"))
+ t.addEntry(pair(":status", "204"))
+ t.addEntry(pair(":status", "206"))
+ t.addEntry(pair(":status", "304"))
+ t.addEntry(pair(":status", "400"))
+ t.addEntry(pair(":status", "404"))
+ t.addEntry(pair(":status", "500"))
+ t.addEntry(pair("accept-charset", ""))
+ t.addEntry(pair("accept-encoding", "gzip, deflate"))
+ t.addEntry(pair("accept-language", ""))
+ t.addEntry(pair("accept-ranges", ""))
+ t.addEntry(pair("accept", ""))
+ t.addEntry(pair("access-control-allow-origin", ""))
+ t.addEntry(pair("age", ""))
+ t.addEntry(pair("allow", ""))
+ t.addEntry(pair("authorization", ""))
+ t.addEntry(pair("cache-control", ""))
+ t.addEntry(pair("content-disposition", ""))
+ t.addEntry(pair("content-encoding", ""))
+ t.addEntry(pair("content-language", ""))
+ t.addEntry(pair("content-length", ""))
+ t.addEntry(pair("content-location", ""))
+ t.addEntry(pair("content-range", ""))
+ t.addEntry(pair("content-type", ""))
+ t.addEntry(pair("cookie", ""))
+ t.addEntry(pair("date", ""))
+ t.addEntry(pair("etag", ""))
+ t.addEntry(pair("expect", ""))
+ t.addEntry(pair("expires", ""))
+ t.addEntry(pair("from", ""))
+ t.addEntry(pair("host", ""))
+ t.addEntry(pair("if-match", ""))
+ t.addEntry(pair("if-modified-since", ""))
+ t.addEntry(pair("if-none-match", ""))
+ t.addEntry(pair("if-range", ""))
+ t.addEntry(pair("if-unmodified-since", ""))
+ t.addEntry(pair("last-modified", ""))
+ t.addEntry(pair("link", ""))
+ t.addEntry(pair("location", ""))
+ t.addEntry(pair("max-forwards", ""))
+ t.addEntry(pair("proxy-authenticate", ""))
+ t.addEntry(pair("proxy-authorization", ""))
+ t.addEntry(pair("range", ""))
+ t.addEntry(pair("referer", ""))
+ t.addEntry(pair("refresh", ""))
+ t.addEntry(pair("retry-after", ""))
+ t.addEntry(pair("server", ""))
+ t.addEntry(pair("set-cookie", ""))
+ t.addEntry(pair("strict-transport-security", ""))
+ t.addEntry(pair("transfer-encoding", ""))
+ t.addEntry(pair("user-agent", ""))
+ t.addEntry(pair("vary", ""))
+ t.addEntry(pair("via", ""))
+ t.addEntry(pair("www-authenticate", ""))
+ return t
}
var huffmanCodes = [256]uint32{
diff --git a/vendor/golang.org/x/net/http2/hpack/tables_test.go b/vendor/golang.org/x/net/http2/hpack/tables_test.go
new file mode 100644
index 000000000..7f40d9a42
--- /dev/null
+++ b/vendor/golang.org/x/net/http2/hpack/tables_test.go
@@ -0,0 +1,188 @@
+// 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.
+
+package hpack
+
+import (
+ "bufio"
+ "regexp"
+ "strconv"
+ "strings"
+ "testing"
+)
+
+func TestHeaderFieldTable(t *testing.T) {
+ table := &headerFieldTable{}
+ table.init()
+ table.addEntry(pair("key1", "value1-1"))
+ table.addEntry(pair("key2", "value2-1"))
+ table.addEntry(pair("key1", "value1-2"))
+ table.addEntry(pair("key3", "value3-1"))
+ table.addEntry(pair("key4", "value4-1"))
+ table.addEntry(pair("key2", "value2-2"))
+
+ // Tests will be run twice: once before evicting anything, and
+ // again after evicting the three oldest entries.
+ tests := []struct {
+ f HeaderField
+ beforeWantStaticI uint64
+ beforeWantMatch bool
+ afterWantStaticI uint64
+ afterWantMatch bool
+ }{
+ {HeaderField{"key1", "value1-1", false}, 1, true, 0, false},
+ {HeaderField{"key1", "value1-2", false}, 3, true, 0, false},
+ {HeaderField{"key1", "value1-3", false}, 3, false, 0, false},
+ {HeaderField{"key2", "value2-1", false}, 2, true, 3, false},
+ {HeaderField{"key2", "value2-2", false}, 6, true, 3, true},
+ {HeaderField{"key2", "value2-3", false}, 6, false, 3, false},
+ {HeaderField{"key4", "value4-1", false}, 5, true, 2, true},
+ // Name match only, because sensitive.
+ {HeaderField{"key4", "value4-1", true}, 5, false, 2, false},
+ // Key not found.
+ {HeaderField{"key5", "value5-x", false}, 0, false, 0, false},
+ }
+
+ staticToDynamic := func(i uint64) uint64 {
+ if i == 0 {
+ return 0
+ }
+ return uint64(table.len()) - i + 1 // dynamic is the reversed table
+ }
+
+ searchStatic := func(f HeaderField) (uint64, bool) {
+ old := staticTable
+ staticTable = table
+ defer func() { staticTable = old }()
+ return staticTable.search(f)
+ }
+
+ searchDynamic := func(f HeaderField) (uint64, bool) {
+ return table.search(f)
+ }
+
+ for _, test := range tests {
+ gotI, gotMatch := searchStatic(test.f)
+ if wantI, wantMatch := test.beforeWantStaticI, test.beforeWantMatch; gotI != wantI || gotMatch != wantMatch {
+ t.Errorf("before evictions: searchStatic(%+v)=%v,%v want %v,%v", test.f, gotI, gotMatch, wantI, wantMatch)
+ }
+ gotI, gotMatch = searchDynamic(test.f)
+ wantDynamicI := staticToDynamic(test.beforeWantStaticI)
+ if wantI, wantMatch := wantDynamicI, test.beforeWantMatch; gotI != wantI || gotMatch != wantMatch {
+ t.Errorf("before evictions: searchDynamic(%+v)=%v,%v want %v,%v", test.f, gotI, gotMatch, wantI, wantMatch)
+ }
+ }
+
+ table.evictOldest(3)
+
+ for _, test := range tests {
+ gotI, gotMatch := searchStatic(test.f)
+ if wantI, wantMatch := test.afterWantStaticI, test.afterWantMatch; gotI != wantI || gotMatch != wantMatch {
+ t.Errorf("after evictions: searchStatic(%+v)=%v,%v want %v,%v", test.f, gotI, gotMatch, wantI, wantMatch)
+ }
+ gotI, gotMatch = searchDynamic(test.f)
+ wantDynamicI := staticToDynamic(test.afterWantStaticI)
+ if wantI, wantMatch := wantDynamicI, test.afterWantMatch; gotI != wantI || gotMatch != wantMatch {
+ t.Errorf("after evictions: searchDynamic(%+v)=%v,%v want %v,%v", test.f, gotI, gotMatch, wantI, wantMatch)
+ }
+ }
+}
+
+func TestStaticTable(t *testing.T) {
+ fromSpec := `
+ +-------+-----------------------------+---------------+
+ | 1 | :authority | |
+ | 2 | :method | GET |
+ | 3 | :method | POST |
+ | 4 | :path | / |
+ | 5 | :path | /index.html |
+ | 6 | :scheme | http |
+ | 7 | :scheme | https |
+ | 8 | :status | 200 |
+ | 9 | :status | 204 |
+ | 10 | :status | 206 |
+ | 11 | :status | 304 |
+ | 12 | :status | 400 |
+ | 13 | :status | 404 |
+ | 14 | :status | 500 |
+ | 15 | accept-charset | |
+ | 16 | accept-encoding | gzip, deflate |
+ | 17 | accept-language | |
+ | 18 | accept-ranges | |
+ | 19 | accept | |
+ | 20 | access-control-allow-origin | |
+ | 21 | age | |
+ | 22 | allow | |
+ | 23 | authorization | |
+ | 24 | cache-control | |
+ | 25 | content-disposition | |
+ | 26 | content-encoding | |
+ | 27 | content-language | |
+ | 28 | content-length | |
+ | 29 | content-location | |
+ | 30 | content-range | |
+ | 31 | content-type | |
+ | 32 | cookie | |
+ | 33 | date | |
+ | 34 | etag | |
+ | 35 | expect | |
+ | 36 | expires | |
+ | 37 | from | |
+ | 38 | host | |
+ | 39 | if-match | |
+ | 40 | if-modified-since | |
+ | 41 | if-none-match | |
+ | 42 | if-range | |
+ | 43 | if-unmodified-since | |
+ | 44 | last-modified | |
+ | 45 | link | |
+ | 46 | location | |
+ | 47 | max-forwards | |
+ | 48 | proxy-authenticate | |
+ | 49 | proxy-authorization | |
+ | 50 | range | |
+ | 51 | referer | |
+ | 52 | refresh | |
+ | 53 | retry-after | |
+ | 54 | server | |
+ | 55 | set-cookie | |
+ | 56 | strict-transport-security | |
+ | 57 | transfer-encoding | |
+ | 58 | user-agent | |
+ | 59 | vary | |
+ | 60 | via | |
+ | 61 | www-authenticate | |
+ +-------+-----------------------------+---------------+
+`
+ bs := bufio.NewScanner(strings.NewReader(fromSpec))
+ re := regexp.MustCompile(`\| (\d+)\s+\| (\S+)\s*\| (\S(.*\S)?)?\s+\|`)
+ for bs.Scan() {
+ l := bs.Text()
+ if !strings.Contains(l, "|") {
+ continue
+ }
+ m := re.FindStringSubmatch(l)
+ if m == nil {
+ continue
+ }
+ i, err := strconv.Atoi(m[1])
+ if err != nil {
+ t.Errorf("Bogus integer on line %q", l)
+ continue
+ }
+ if i < 1 || i > staticTable.len() {
+ t.Errorf("Bogus index %d on line %q", i, l)
+ continue
+ }
+ if got, want := staticTable.ents[i-1].Name, m[2]; got != want {
+ t.Errorf("header index %d name = %q; want %q", i, got, want)
+ }
+ if got, want := staticTable.ents[i-1].Value, m[3]; got != want {
+ t.Errorf("header index %d value = %q; want %q", i, got, want)
+ }
+ }
+ if err := bs.Err(); err != nil {
+ t.Error(err)
+ }
+}
diff --git a/vendor/golang.org/x/net/http2/pipe.go b/vendor/golang.org/x/net/http2/pipe.go
index 53b7a1daf..914aaf8a7 100644
--- a/vendor/golang.org/x/net/http2/pipe.go
+++ b/vendor/golang.org/x/net/http2/pipe.go
@@ -10,7 +10,7 @@ import (
"sync"
)
-// pipe is a goroutine-safe io.Reader/io.Writer pair. It's like
+// pipe is a goroutine-safe io.Reader/io.Writer pair. It's like
// io.Pipe except there are no PipeReader/PipeWriter halves, and the
// underlying buffer is an interface. (io.Pipe is always unbuffered)
type pipe struct {
diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go
index 3c6b90ccd..550427dda 100644
--- a/vendor/golang.org/x/net/http2/server.go
+++ b/vendor/golang.org/x/net/http2/server.go
@@ -110,11 +110,38 @@ type Server struct {
// activity for the purposes of IdleTimeout.
IdleTimeout time.Duration
+ // MaxUploadBufferPerConnection is the size of the initial flow
+ // control window for each connections. The HTTP/2 spec does not
+ // allow this to be smaller than 65535 or larger than 2^32-1.
+ // If the value is outside this range, a default value will be
+ // used instead.
+ MaxUploadBufferPerConnection int32
+
+ // MaxUploadBufferPerStream is the size of the initial flow control
+ // window for each stream. The HTTP/2 spec does not allow this to
+ // be larger than 2^32-1. If the value is zero or larger than the
+ // maximum, a default value will be used instead.
+ MaxUploadBufferPerStream int32
+
// NewWriteScheduler constructs a write scheduler for a connection.
// If nil, a default scheduler is chosen.
NewWriteScheduler func() WriteScheduler
}
+func (s *Server) initialConnRecvWindowSize() int32 {
+ if s.MaxUploadBufferPerConnection > initialWindowSize {
+ return s.MaxUploadBufferPerConnection
+ }
+ return 1 << 20
+}
+
+func (s *Server) initialStreamRecvWindowSize() int32 {
+ if s.MaxUploadBufferPerStream > 0 {
+ return s.MaxUploadBufferPerStream
+ }
+ return 1 << 20
+}
+
func (s *Server) maxReadFrameSize() uint32 {
if v := s.MaxReadFrameSize; v >= minMaxFrameSize && v <= maxFrameSize {
return v
@@ -255,27 +282,27 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) {
defer cancel()
sc := &serverConn{
- srv: s,
- hs: opts.baseConfig(),
- conn: c,
- baseCtx: baseCtx,
- remoteAddrStr: c.RemoteAddr().String(),
- bw: newBufferedWriter(c),
- handler: opts.handler(),
- streams: make(map[uint32]*stream),
- readFrameCh: make(chan readFrameResult),
- wantWriteFrameCh: make(chan FrameWriteRequest, 8),
- wantStartPushCh: make(chan startPushRequest, 8),
- wroteFrameCh: make(chan frameWriteResult, 1), // buffered; one send in writeFrameAsync
- bodyReadCh: make(chan bodyReadMsg), // buffering doesn't matter either way
- doneServing: make(chan struct{}),
- clientMaxStreams: math.MaxUint32, // Section 6.5.2: "Initially, there is no limit to this value"
- advMaxStreams: s.maxConcurrentStreams(),
- initialWindowSize: initialWindowSize,
- maxFrameSize: initialMaxFrameSize,
- headerTableSize: initialHeaderTableSize,
- serveG: newGoroutineLock(),
- pushEnabled: true,
+ srv: s,
+ hs: opts.baseConfig(),
+ conn: c,
+ baseCtx: baseCtx,
+ remoteAddrStr: c.RemoteAddr().String(),
+ bw: newBufferedWriter(c),
+ handler: opts.handler(),
+ streams: make(map[uint32]*stream),
+ readFrameCh: make(chan readFrameResult),
+ wantWriteFrameCh: make(chan FrameWriteRequest, 8),
+ wantStartPushCh: make(chan startPushRequest, 8),
+ wroteFrameCh: make(chan frameWriteResult, 1), // buffered; one send in writeFrameAsync
+ bodyReadCh: make(chan bodyReadMsg), // buffering doesn't matter either way
+ doneServing: make(chan struct{}),
+ clientMaxStreams: math.MaxUint32, // Section 6.5.2: "Initially, there is no limit to this value"
+ advMaxStreams: s.maxConcurrentStreams(),
+ initialStreamSendWindowSize: initialWindowSize,
+ maxFrameSize: initialMaxFrameSize,
+ headerTableSize: initialHeaderTableSize,
+ serveG: newGoroutineLock(),
+ pushEnabled: true,
}
// The net/http package sets the write deadline from the
@@ -294,6 +321,9 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) {
sc.writeSched = NewRandomWriteScheduler()
}
+ // These start at the RFC-specified defaults. If there is a higher
+ // configured value for inflow, that will be updated when we send a
+ // WINDOW_UPDATE shortly after sending SETTINGS.
sc.flow.add(initialWindowSize)
sc.inflow.add(initialWindowSize)
sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf)
@@ -387,34 +417,34 @@ type serverConn struct {
writeSched WriteScheduler
// Everything following is owned by the serve loop; use serveG.check():
- serveG goroutineLock // used to verify funcs are on serve()
- pushEnabled bool
- sawFirstSettings bool // got the initial SETTINGS frame after the preface
- needToSendSettingsAck bool
- unackedSettings int // how many SETTINGS have we sent without ACKs?
- clientMaxStreams uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit)
- advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client
- curClientStreams uint32 // number of open streams initiated by the client
- curPushedStreams uint32 // number of open streams initiated by server push
- maxClientStreamID uint32 // max ever seen from client (odd), or 0 if there have been no client requests
- maxPushPromiseID uint32 // ID of the last push promise (even), or 0 if there have been no pushes
- streams map[uint32]*stream
- initialWindowSize int32
- maxFrameSize int32
- headerTableSize uint32
- peerMaxHeaderListSize uint32 // zero means unknown (default)
- canonHeader map[string]string // http2-lower-case -> Go-Canonical-Case
- writingFrame bool // started writing a frame (on serve goroutine or separate)
- writingFrameAsync bool // started a frame on its own goroutine but haven't heard back on wroteFrameCh
- needsFrameFlush bool // last frame write wasn't a flush
- inGoAway bool // we've started to or sent GOAWAY
- inFrameScheduleLoop bool // whether we're in the scheduleFrameWrite loop
- needToSendGoAway bool // we need to schedule a GOAWAY frame write
- goAwayCode ErrCode
- shutdownTimerCh <-chan time.Time // nil until used
- shutdownTimer *time.Timer // nil until used
- idleTimer *time.Timer // nil if unused
- idleTimerCh <-chan time.Time // nil if unused
+ serveG goroutineLock // used to verify funcs are on serve()
+ pushEnabled bool
+ sawFirstSettings bool // got the initial SETTINGS frame after the preface
+ needToSendSettingsAck bool
+ unackedSettings int // how many SETTINGS have we sent without ACKs?
+ clientMaxStreams uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit)
+ advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client
+ curClientStreams uint32 // number of open streams initiated by the client
+ curPushedStreams uint32 // number of open streams initiated by server push
+ maxClientStreamID uint32 // max ever seen from client (odd), or 0 if there have been no client requests
+ maxPushPromiseID uint32 // ID of the last push promise (even), or 0 if there have been no pushes
+ streams map[uint32]*stream
+ initialStreamSendWindowSize int32
+ maxFrameSize int32
+ headerTableSize uint32
+ peerMaxHeaderListSize uint32 // zero means unknown (default)
+ canonHeader map[string]string // http2-lower-case -> Go-Canonical-Case
+ writingFrame bool // started writing a frame (on serve goroutine or separate)
+ writingFrameAsync bool // started a frame on its own goroutine but haven't heard back on wroteFrameCh
+ needsFrameFlush bool // last frame write wasn't a flush
+ inGoAway bool // we've started to or sent GOAWAY
+ inFrameScheduleLoop bool // whether we're in the scheduleFrameWrite loop
+ needToSendGoAway bool // we need to schedule a GOAWAY frame write
+ goAwayCode ErrCode
+ shutdownTimerCh <-chan time.Time // nil until used
+ shutdownTimer *time.Timer // nil until used
+ idleTimer *time.Timer // nil if unused
+ idleTimerCh <-chan time.Time // nil if unused
// Owned by the writeFrameAsync goroutine:
headerWriteBuf bytes.Buffer
@@ -463,10 +493,9 @@ type stream struct {
numTrailerValues int64
weight uint8
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)
- reqBuf []byte // if non-nil, body pipe buffer to return later at EOF
+ 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)
trailer http.Header // accumulated trailers
reqTrailer http.Header // handler's Request.Trailer
@@ -696,21 +725,23 @@ func (sc *serverConn) serve() {
{SettingMaxFrameSize, sc.srv.maxReadFrameSize()},
{SettingMaxConcurrentStreams, sc.advMaxStreams},
{SettingMaxHeaderListSize, sc.maxHeaderListSize()},
-
- // TODO: more actual settings, notably
- // SettingInitialWindowSize, but then we also
- // want to bump up the conn window size the
- // same amount here right after the settings
+ {SettingInitialWindowSize, uint32(sc.srv.initialStreamRecvWindowSize())},
},
})
sc.unackedSettings++
+ // Each connection starts with intialWindowSize inflow tokens.
+ // If a higher value is configured, we add more tokens.
+ if diff := sc.srv.initialConnRecvWindowSize() - initialWindowSize; diff > 0 {
+ sc.sendWindowUpdate(nil, int(diff))
+ }
+
if err := sc.readPreface(); err != nil {
sc.condlogf(err, "http2: server: error reading preface from client %v: %v", sc.conn.RemoteAddr(), err)
return
}
// Now that we've got the preface, get us out of the
- // "StateNew" state. We can't go directly to idle, though.
+ // "StateNew" state. We can't go directly to idle, though.
// Active means we read some data and anticipate a request. We'll
// do another Active when we get a HEADERS frame.
sc.setConnState(http.StateActive)
@@ -1395,9 +1426,9 @@ func (sc *serverConn) processSettingInitialWindowSize(val uint32) error {
// adjust the size of all stream flow control windows that it
// maintains by the difference between the new value and the
// old value."
- old := sc.initialWindowSize
- sc.initialWindowSize = int32(val)
- growth := sc.initialWindowSize - old // may be negative
+ old := sc.initialStreamSendWindowSize
+ sc.initialStreamSendWindowSize = int32(val)
+ growth := int32(val) - old // may be negative
for _, st := range sc.streams {
if !st.flow.add(growth) {
// 6.9.2 Initial Flow Control Window Size
@@ -1719,9 +1750,9 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream
}
st.cw.Init()
st.flow.conn = &sc.flow // link to conn-level counter
- st.flow.add(sc.initialWindowSize)
- st.inflow.conn = &sc.inflow // link to conn-level counter
- st.inflow.add(initialWindowSize) // TODO: update this when we send a higher initial window size in the initial settings
+ st.flow.add(sc.initialStreamSendWindowSize)
+ st.inflow.conn = &sc.inflow // link to conn-level counter
+ st.inflow.add(sc.srv.initialStreamRecvWindowSize())
sc.streams[id] = st
sc.writeSched.OpenStream(st.id, OpenStreamOptions{PusherID: pusherID})
@@ -1785,16 +1816,14 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res
return nil, nil, err
}
if bodyOpen {
- st.reqBuf = getRequestBodyBuf()
- req.Body.(*requestBody).pipe = &pipe{
- b: &fixedBuffer{buf: st.reqBuf},
- }
-
if vv, ok := rp.header["Content-Length"]; ok {
req.ContentLength, _ = strconv.ParseInt(vv[0], 10, 64)
} else {
req.ContentLength = -1
}
+ req.Body.(*requestBody).pipe = &pipe{
+ b: &dataBuffer{expected: req.ContentLength},
+ }
}
return rw, req, nil
}
@@ -1890,24 +1919,6 @@ func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*r
return rw, req, nil
}
-var reqBodyCache = make(chan []byte, 8)
-
-func getRequestBodyBuf() []byte {
- select {
- case b := <-reqBodyCache:
- return b
- default:
- return make([]byte, initialWindowSize)
- }
-}
-
-func putRequestBodyBuf(b []byte) {
- select {
- case reqBodyCache <- b:
- default:
- }
-}
-
// Run on its own goroutine.
func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) {
didPanic := true
@@ -2003,12 +2014,6 @@ func (sc *serverConn) noteBodyReadFromHandler(st *stream, n int, err error) {
case <-sc.doneServing:
}
}
- if err == io.EOF {
- if buf := st.reqBuf; buf != nil {
- st.reqBuf = nil // shouldn't matter; field unused by other
- putRequestBodyBuf(buf)
- }
- }
}
func (sc *serverConn) noteBodyRead(st *stream, n int) {
@@ -2103,8 +2108,8 @@ func (b *requestBody) Read(p []byte) (n int, err error) {
return
}
-// responseWriter is the http.ResponseWriter implementation. It's
-// intentionally small (1 pointer wide) to minimize garbage. The
+// responseWriter is the http.ResponseWriter implementation. It's
+// intentionally small (1 pointer wide) to minimize garbage. The
// responseWriterState pointer inside is zeroed at the end of a
// request (in handlerDone) and calls on the responseWriter thereafter
// simply crash (caller's mistake), but the much larger responseWriterState
@@ -2278,7 +2283,7 @@ const TrailerPrefix = "Trailer:"
// says you SHOULD (but not must) predeclare any trailers in the
// header, the official ResponseWriter rules said trailers in Go must
// be predeclared, and then we reuse the same ResponseWriter.Header()
-// map to mean both Headers and Trailers. When it's time to write the
+// map to mean both Headers and Trailers. When it's time to write the
// Trailers, we pick out the fields of Headers that were declared as
// trailers. That worked for a while, until we found the first major
// user of Trailers in the wild: gRPC (using them only over http2),
diff --git a/vendor/golang.org/x/net/http2/server_test.go b/vendor/golang.org/x/net/http2/server_test.go
index dfa4cff2e..407fafc6d 100644
--- a/vendor/golang.org/x/net/http2/server_test.go
+++ b/vendor/golang.org/x/net/http2/server_test.go
@@ -80,6 +80,7 @@ type serverTesterOpt string
var optOnlyServer = serverTesterOpt("only_server")
var optQuiet = serverTesterOpt("quiet_logging")
+var optFramerReuseFrames = serverTesterOpt("frame_reuse_frames")
func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}) *serverTester {
resetHooks()
@@ -91,7 +92,7 @@ func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}
NextProtos: []string{NextProtoTLS},
}
- var onlyServer, quiet bool
+ var onlyServer, quiet, framerReuseFrames bool
h2server := new(Server)
for _, opt := range opts {
switch v := opt.(type) {
@@ -107,6 +108,8 @@ func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}
onlyServer = true
case optQuiet:
quiet = true
+ case optFramerReuseFrames:
+ framerReuseFrames = true
}
case func(net.Conn, http.ConnState):
ts.Config.ConnState = v
@@ -149,6 +152,9 @@ func newServerTester(t testing.TB, handler http.HandlerFunc, opts ...interface{}
}
st.cc = cc
st.fr = NewFramer(cc, cc)
+ if framerReuseFrames {
+ st.fr.SetReuseFrames()
+ }
if !logFrameReads && !logFrameWrites {
st.fr.debugReadLoggerf = func(m string, v ...interface{}) {
m = time.Now().Format("2006-01-02 15:04:05.999999999 ") + strings.TrimPrefix(m, "http2: ") + "\n"
@@ -254,11 +260,52 @@ func (st *serverTester) Close() {
// greet initiates the client's HTTP/2 connection into a state where
// frames may be sent.
func (st *serverTester) greet() {
+ st.greetAndCheckSettings(func(Setting) error { return nil })
+}
+
+func (st *serverTester) greetAndCheckSettings(checkSetting func(s Setting) error) {
st.writePreface()
st.writeInitialSettings()
- st.wantSettings()
+ st.wantSettings().ForeachSetting(checkSetting)
st.writeSettingsAck()
- st.wantSettingsAck()
+
+ // The initial WINDOW_UPDATE and SETTINGS ACK can come in any order.
+ var gotSettingsAck bool
+ var gotWindowUpdate bool
+
+ for i := 0; i < 2; i++ {
+ f, err := st.readFrame()
+ if err != nil {
+ st.t.Fatal(err)
+ }
+ switch f := f.(type) {
+ case *SettingsFrame:
+ if !f.Header().Flags.Has(FlagSettingsAck) {
+ st.t.Fatal("Settings Frame didn't have ACK set")
+ }
+ gotSettingsAck = true
+
+ case *WindowUpdateFrame:
+ if f.FrameHeader.StreamID != 0 {
+ st.t.Fatalf("WindowUpdate StreamID = %d; want 0", f.FrameHeader.StreamID, 0)
+ }
+ incr := uint32((&Server{}).initialConnRecvWindowSize() - initialWindowSize)
+ if f.Increment != incr {
+ st.t.Fatalf("WindowUpdate increment = %d; want %d", f.Increment, incr)
+ }
+ gotWindowUpdate = true
+
+ default:
+ st.t.Fatalf("Wanting a settings ACK or window update, received a %T", f)
+ }
+ }
+
+ if !gotSettingsAck {
+ st.t.Fatalf("Didn't get a settings ACK")
+ }
+ if !gotWindowUpdate {
+ st.t.Fatalf("Didn't get a window update")
+ }
}
func (st *serverTester) writePreface() {
@@ -318,7 +365,7 @@ func (st *serverTester) encodeHeaderRaw(headers ...string) []byte {
}
// encodeHeader encodes headers and returns their HPACK bytes. headers
-// must contain an even number of key/value pairs. There may be
+// must contain an even number of key/value pairs. There may be
// multiple pairs for keys (e.g. "cookie"). The :method, :path, and
// :scheme headers default to GET, / and https. The :authority header
// defaults to st.ts.Listener.Addr().
@@ -578,12 +625,7 @@ func TestServer(t *testing.T) {
server sends in the HTTP/2 connection.
`)
- st.writePreface()
- st.writeInitialSettings()
- st.wantSettings()
- st.writeSettingsAck()
- st.wantSettingsAck()
-
+ st.greet()
st.writeHeaders(HeadersFrameParam{
StreamID: 1, // clients send odd numbers
BlockFragment: st.encodeHeader(),
@@ -656,7 +698,7 @@ func TestServer_Request_Get_PathSlashes(t *testing.T) {
}
// TODO: add a test with EndStream=true on the HEADERS but setting a
-// Content-Length anyway. Should we just omit it and force it to
+// Content-Length anyway. Should we just omit it and force it to
// zero?
func TestServer_Request_Post_NoContentLength_EndStream(t *testing.T) {
@@ -1192,7 +1234,7 @@ func TestServer_Handler_Sends_WindowUpdate_Padding(t *testing.T) {
EndStream: false,
EndHeaders: true,
})
- st.writeDataPadded(1, false, []byte("abcdef"), []byte("1234"))
+ st.writeDataPadded(1, false, []byte("abcdef"), []byte{0, 0, 0, 0})
// Expect to immediately get our 5 bytes of padding back for
// both the connection and stream (4 bytes of padding + 1 byte of length)
@@ -2595,11 +2637,9 @@ func TestServerDoS_MaxHeaderListSize(t *testing.T) {
defer st.Close()
// shake hands
- st.writePreface()
- st.writeInitialSettings()
frameSize := defaultMaxReadFrameSize
var advHeaderListSize *uint32
- st.wantSettings().ForeachSetting(func(s Setting) error {
+ st.greetAndCheckSettings(func(s Setting) error {
switch s.ID {
case SettingMaxFrameSize:
if s.Val < minMaxFrameSize {
@@ -2614,8 +2654,6 @@ func TestServerDoS_MaxHeaderListSize(t *testing.T) {
}
return nil
})
- st.writeSettingsAck()
- st.wantSettingsAck()
if advHeaderListSize == nil {
t.Errorf("server didn't advertise a max header list size")
@@ -2994,6 +3032,89 @@ func BenchmarkServerPosts(b *testing.B) {
}
}
+// Send a stream of messages from server to client in separate data frames.
+// Brings up performance issues seen in long streams.
+// Created to show problem in go issue #18502
+func BenchmarkServerToClientStreamDefaultOptions(b *testing.B) {
+ benchmarkServerToClientStream(b)
+}
+
+// Justification for Change-Id: Iad93420ef6c3918f54249d867098f1dadfa324d8
+// Expect to see memory/alloc reduction by opting in to Frame reuse with the Framer.
+func BenchmarkServerToClientStreamReuseFrames(b *testing.B) {
+ benchmarkServerToClientStream(b, optFramerReuseFrames)
+}
+
+func benchmarkServerToClientStream(b *testing.B, newServerOpts ...interface{}) {
+ defer disableGoroutineTracking()()
+ b.ReportAllocs()
+ const msgLen = 1
+ // default window size
+ const windowSize = 1<<16 - 1
+
+ // next message to send from the server and for the client to expect
+ nextMsg := func(i int) []byte {
+ msg := make([]byte, msgLen)
+ msg[0] = byte(i)
+ if len(msg) != msgLen {
+ panic("invalid test setup msg length")
+ }
+ return msg
+ }
+
+ st := newServerTester(b, func(w http.ResponseWriter, r *http.Request) {
+ // Consume the (empty) body from th peer before replying, otherwise
+ // the server will sometimes (depending on scheduling) send the peer a
+ // a RST_STREAM with the CANCEL error code.
+ if n, err := io.Copy(ioutil.Discard, r.Body); n != 0 || err != nil {
+ b.Errorf("Copy error; got %v, %v; want 0, nil", n, err)
+ }
+ for i := 0; i < b.N; i += 1 {
+ w.Write(nextMsg(i))
+ w.(http.Flusher).Flush()
+ }
+ }, newServerOpts...)
+ defer st.Close()
+ st.greet()
+
+ const id = uint32(1)
+
+ st.writeHeaders(HeadersFrameParam{
+ StreamID: id,
+ BlockFragment: st.encodeHeader(":method", "POST"),
+ EndStream: false,
+ EndHeaders: true,
+ })
+
+ st.writeData(id, true, nil)
+ st.wantHeaders()
+
+ var pendingWindowUpdate = uint32(0)
+
+ for i := 0; i < b.N; i += 1 {
+ expected := nextMsg(i)
+ df := st.wantData()
+ if bytes.Compare(expected, df.data) != 0 {
+ b.Fatalf("Bad message received; want %v; got %v", expected, df.data)
+ }
+ // try to send infrequent but large window updates so they don't overwhelm the test
+ pendingWindowUpdate += uint32(len(df.data))
+ if pendingWindowUpdate >= windowSize/2 {
+ if err := st.fr.WriteWindowUpdate(0, pendingWindowUpdate); err != nil {
+ b.Fatal(err)
+ }
+ if err := st.fr.WriteWindowUpdate(id, pendingWindowUpdate); err != nil {
+ b.Fatal(err)
+ }
+ pendingWindowUpdate = 0
+ }
+ }
+ df := st.wantData()
+ if !df.StreamEnded() {
+ b.Fatalf("DATA didn't have END_STREAM; got %v", df)
+ }
+}
+
// go-fuzz bug, originally reported at https://github.com/bradfitz/http2/issues/53
// Verify we don't hang.
func TestIssue53(t *testing.T) {
diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go
index 0c7e859db..84d042d46 100644
--- a/vendor/golang.org/x/net/http2/transport.go
+++ b/vendor/golang.org/x/net/http2/transport.go
@@ -575,7 +575,7 @@ func (cc *ClientConn) canTakeNewRequestLocked() bool {
cc.nextStreamID < math.MaxInt32
}
-// onIdleTimeout is called from a time.AfterFunc goroutine. It will
+// onIdleTimeout is called from a time.AfterFunc goroutine. It will
// only be called when we're idle, but because we're coming from a new
// goroutine, there could be a new request coming in at the same time,
// so this simply calls the synchronized closeIfIdle to shut down this
@@ -809,8 +809,8 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) {
// 2xx, however, then assume the server DOES potentially
// want our body (e.g. full-duplex streaming:
// golang.org/issue/13444). If it turns out the server
- // doesn't, they'll RST_STREAM us soon enough. This is a
- // heuristic to avoid adding knobs to Transport. Hopefully
+ // doesn't, they'll RST_STREAM us soon enough. This is a
+ // heuristic to avoid adding knobs to Transport. Hopefully
// we can keep it.
bodyWriter.cancel()
cs.abortRequestBodyWrite(errStopReqBodyWrite)
@@ -1528,8 +1528,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
return res, nil
}
- buf := new(bytes.Buffer) // TODO(bradfitz): recycle this garbage
- cs.bufPipe = pipe{b: buf}
+ cs.bufPipe = pipe{b: &dataBuffer{expected: res.ContentLength}}
cs.bytesRemain = res.ContentLength
res.Body = transportResponseBody{cs}
go cs.awaitRequestCancel(cs.req)
diff --git a/vendor/golang.org/x/net/http2/transport_test.go b/vendor/golang.org/x/net/http2/transport_test.go
index 8ef4f3388..7ae8ff787 100644
--- a/vendor/golang.org/x/net/http2/transport_test.go
+++ b/vendor/golang.org/x/net/http2/transport_test.go
@@ -2406,7 +2406,7 @@ func TestTransportReturnsDataPaddingFlowControl(t *testing.T) {
EndStream: false,
BlockFragment: buf.Bytes(),
})
- pad := []byte("12345")
+ pad := make([]byte, 5)
ct.fr.WriteDataPadded(hf.StreamID, false, make([]byte, 5000), pad) // without ending stream
f, err := ct.readNonSettingsFrame()
diff --git a/vendor/golang.org/x/net/internal/netreflect/socket.go b/vendor/golang.org/x/net/internal/netreflect/socket.go
index e82e51c44..1495b65f5 100644
--- a/vendor/golang.org/x/net/internal/netreflect/socket.go
+++ b/vendor/golang.org/x/net/internal/netreflect/socket.go
@@ -2,8 +2,12 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+// +build !go1.9
+
// Package netreflect implements run-time reflection for the
// facilities of net package.
+//
+// This package works only for Go 1.8 or below.
package netreflect
import (
diff --git a/vendor/golang.org/x/net/internal/netreflect/socket_19.go b/vendor/golang.org/x/net/internal/netreflect/socket_19.go
new file mode 100644
index 000000000..74df52e1a
--- /dev/null
+++ b/vendor/golang.org/x/net/internal/netreflect/socket_19.go
@@ -0,0 +1,37 @@
+// 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.
+
+// +build go1.9
+
+package netreflect
+
+import (
+ "errors"
+ "net"
+)
+
+var (
+ errInvalidType = errors.New("invalid type")
+ errOpNoSupport = errors.New("operation not supported")
+)
+
+// SocketOf returns the socket descriptor of c.
+func SocketOf(c net.Conn) (uintptr, error) {
+ switch c.(type) {
+ case *net.TCPConn, *net.UDPConn, *net.IPConn, *net.UnixConn:
+ return 0, errOpNoSupport
+ default:
+ return 0, errInvalidType
+ }
+}
+
+// PacketSocketOf returns the socket descriptor of c.
+func PacketSocketOf(c net.PacketConn) (uintptr, error) {
+ switch c.(type) {
+ case *net.UDPConn, *net.IPConn, *net.UnixConn:
+ return 0, errOpNoSupport
+ default:
+ return 0, errInvalidType
+ }
+}
diff --git a/vendor/golang.org/x/net/internal/netreflect/socket_posix.go b/vendor/golang.org/x/net/internal/netreflect/socket_posix.go
index df475a2b2..410c0924d 100644
--- a/vendor/golang.org/x/net/internal/netreflect/socket_posix.go
+++ b/vendor/golang.org/x/net/internal/netreflect/socket_posix.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+// +build !go1.9
// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows
package netreflect
diff --git a/vendor/golang.org/x/net/internal/netreflect/socket_stub.go b/vendor/golang.org/x/net/internal/netreflect/socket_stub.go
index 85adb4b7f..17b20c478 100644
--- a/vendor/golang.org/x/net/internal/netreflect/socket_stub.go
+++ b/vendor/golang.org/x/net/internal/netreflect/socket_stub.go
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+// +build !go1.9
// +build !darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows
package netreflect
diff --git a/vendor/golang.org/x/net/internal/netreflect/socket_test.go b/vendor/golang.org/x/net/internal/netreflect/socket_test.go
index 49b97ed54..b3aad0d92 100644
--- a/vendor/golang.org/x/net/internal/netreflect/socket_test.go
+++ b/vendor/golang.org/x/net/internal/netreflect/socket_test.go
@@ -2,6 +2,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+// +build !go1.9
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows
+
package netreflect_test
import (
diff --git a/vendor/golang.org/x/net/internal/timeseries/timeseries.go b/vendor/golang.org/x/net/internal/timeseries/timeseries.go
index 1119f3448..685f0e7ea 100644
--- a/vendor/golang.org/x/net/internal/timeseries/timeseries.go
+++ b/vendor/golang.org/x/net/internal/timeseries/timeseries.go
@@ -371,7 +371,7 @@ func (ts *timeSeries) ComputeRange(start, finish time.Time, num int) []Observabl
}
}
- // Failed to find a level that covers the desired range. So just
+ // Failed to find a level that covers the desired range. So just
// extract from the last level, even if it doesn't cover the entire
// desired range.
ts.extract(ts.levels[len(ts.levels)-1], start, finish, num, results)
diff --git a/vendor/golang.org/x/net/ipv4/doc.go b/vendor/golang.org/x/net/ipv4/doc.go
index b4ce40fbc..b43935a5a 100644
--- a/vendor/golang.org/x/net/ipv4/doc.go
+++ b/vendor/golang.org/x/net/ipv4/doc.go
@@ -21,7 +21,7 @@
//
// The options for unicasting are available for net.TCPConn,
// net.UDPConn and net.IPConn which are created as network connections
-// that use the IPv4 transport. When a single TCP connection carrying
+// that use the IPv4 transport. When a single TCP connection carrying
// a data flow of multiple packets needs to indicate the flow is
// important, Conn is used to set the type-of-service field on the
// IPv4 header for each packet.
@@ -56,7 +56,7 @@
//
// The options for multicasting are available for net.UDPConn and
// net.IPconn which are created as network connections that use the
-// IPv4 transport. A few network facilities must be prepared before
+// IPv4 transport. A few network facilities must be prepared before
// you begin multicasting, at a minimum joining network interfaces and
// multicast groups.
//
@@ -80,7 +80,7 @@
// defer c.Close()
//
// Second, the application joins multicast groups, starts listening to
-// the groups on the specified network interfaces. Note that the
+// the groups on the specified network interfaces. Note that the
// service port for transport layer protocol does not matter with this
// operation as joining groups affects only network and link layer
// protocols, such as IPv4 and Ethernet.
@@ -94,7 +94,7 @@
// }
//
// The application might set per packet control message transmissions
-// between the protocol stack within the kernel. When the application
+// between the protocol stack within the kernel. When the application
// needs a destination address on an incoming packet,
// SetControlMessage of PacketConn is used to enable control message
// transmissions.
@@ -145,7 +145,7 @@
// More multicasting
//
// An application that uses PacketConn or RawConn may join multiple
-// multicast groups. For example, a UDP listener with port 1024 might
+// multicast groups. For example, a UDP listener with port 1024 might
// join two different groups across over two different network
// interfaces by using:
//
@@ -166,7 +166,7 @@
// }
//
// It is possible for multiple UDP listeners that listen on the same
-// UDP port to join the same multicast group. The net package will
+// UDP port to join the same multicast group. The net package will
// provide a socket that listens to a wildcard address with reusable
// UDP port when an appropriate multicast address prefix is passed to
// the net.ListenPacket or net.ListenUDP.
diff --git a/vendor/golang.org/x/net/ipv4/endpoint.go b/vendor/golang.org/x/net/ipv4/endpoint.go
index 01c4e399b..8f7e07ac4 100644
--- a/vendor/golang.org/x/net/ipv4/endpoint.go
+++ b/vendor/golang.org/x/net/ipv4/endpoint.go
@@ -38,8 +38,8 @@ func NewConn(c net.Conn) *Conn {
}
// A PacketConn represents a packet network endpoint that uses the
-// IPv4 transport. It is used to control several IP-level socket
-// options including multicasting. It also provides datagram based
+// IPv4 transport. It is used to control several IP-level socket
+// options including multicasting. It also provides datagram based
// network I/O methods specific to the IPv4 and higher layer protocols
// such as UDP.
type PacketConn struct {
@@ -118,8 +118,8 @@ func NewPacketConn(c net.PacketConn) *PacketConn {
}
// A RawConn represents a packet network endpoint that uses the IPv4
-// transport. It is used to control several IP-level socket options
-// including IPv4 header manipulation. It also provides datagram
+// transport. It is used to control several IP-level socket options
+// including IPv4 header manipulation. It also provides datagram
// based network I/O methods specific to the IPv4 and higher layer
// protocols that handle IPv4 datagram directly such as OSPF, GRE.
type RawConn struct {
diff --git a/vendor/golang.org/x/net/ipv4/go19_test.go b/vendor/golang.org/x/net/ipv4/go19_test.go
new file mode 100644
index 000000000..82a27b113
--- /dev/null
+++ b/vendor/golang.org/x/net/ipv4/go19_test.go
@@ -0,0 +1,11 @@
+// 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.
+
+// +build go1.9
+
+package ipv4
+
+func init() {
+ disableTests = true
+}
diff --git a/vendor/golang.org/x/net/ipv4/ipv4_test.go b/vendor/golang.org/x/net/ipv4/ipv4_test.go
new file mode 100644
index 000000000..917299283
--- /dev/null
+++ b/vendor/golang.org/x/net/ipv4/ipv4_test.go
@@ -0,0 +1,22 @@
+// 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.
+
+package ipv4
+
+import (
+ "fmt"
+ "os"
+ "testing"
+)
+
+var disableTests = false
+
+func TestMain(m *testing.M) {
+ if disableTests {
+ fmt.Fprintf(os.Stderr, "ipv4 tests disabled in Go 1.9 until netreflect is fixed. (Issue 19051)\n")
+ os.Exit(0)
+ }
+ // call flag.Parse() here if TestMain uses flags
+ os.Exit(m.Run())
+}
diff --git a/vendor/golang.org/x/net/ipv4/packet.go b/vendor/golang.org/x/net/ipv4/packet.go
index 7f3bf4898..d43723ca9 100644
--- a/vendor/golang.org/x/net/ipv4/packet.go
+++ b/vendor/golang.org/x/net/ipv4/packet.go
@@ -21,7 +21,7 @@ type packetHandler struct {
func (c *packetHandler) ok() bool { return c != nil && c.c != nil }
// ReadFrom reads an IPv4 datagram from the endpoint c, copying the
-// datagram into b. It returns the received datagram as the IPv4
+// datagram into b. It returns the received datagram as the IPv4
// header h, the payload p and the control message cm.
func (c *packetHandler) ReadFrom(b []byte) (h *Header, p []byte, cm *ControlMessage, err error) {
if !c.ok() {
@@ -57,9 +57,9 @@ func slicePacket(b []byte) (h, p []byte, err error) {
}
// WriteTo writes an IPv4 datagram through the endpoint c, copying the
-// datagram from the IPv4 header h and the payload p. The control
+// datagram from the IPv4 header h and the payload p. The control
// message cm allows the datagram path and the outgoing interface to be
-// specified. Currently only Darwin and Linux support this. The cm
+// specified. Currently only Darwin and Linux support this. The cm
// may be nil if control of the outgoing datagram is not required.
//
// The IPv4 header h must contain appropriate fields that include:
diff --git a/vendor/golang.org/x/net/ipv4/payload_cmsg.go b/vendor/golang.org/x/net/ipv4/payload_cmsg.go
index 9bcde8f9a..5e6e55c20 100644
--- a/vendor/golang.org/x/net/ipv4/payload_cmsg.go
+++ b/vendor/golang.org/x/net/ipv4/payload_cmsg.go
@@ -12,7 +12,7 @@ import (
)
// ReadFrom reads a payload of the received IPv4 datagram, from the
-// endpoint c, copying the payload into b. It returns the number of
+// endpoint c, copying the payload into b. It returns the number of
// bytes copied into b, the control message cm and the source address
// src of the received datagram.
func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
@@ -53,10 +53,10 @@ func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.
}
// WriteTo writes a payload of the IPv4 datagram, to the destination
-// address dst through the endpoint c, copying the payload from b. It
-// returns the number of bytes written. The control message cm allows
+// address dst through the endpoint c, copying the payload from b. It
+// returns the number of bytes written. The control message cm allows
// the datagram path and the outgoing interface to be specified.
-// Currently only Darwin and Linux support this. The cm may be nil if
+// Currently only Darwin and Linux support this. The cm may be nil if
// control of the outgoing datagram is not required.
func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
if !c.ok() {
diff --git a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go
index 6f1b402f7..6f9d5b0ef 100644
--- a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go
+++ b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go
@@ -12,7 +12,7 @@ import (
)
// ReadFrom reads a payload of the received IPv4 datagram, from the
-// endpoint c, copying the payload into b. It returns the number of
+// endpoint c, copying the payload into b. It returns the number of
// bytes copied into b, the control message cm and the source address
// src of the received datagram.
func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
@@ -26,10 +26,10 @@ func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.
}
// WriteTo writes a payload of the IPv4 datagram, to the destination
-// address dst through the endpoint c, copying the payload from b. It
-// returns the number of bytes written. The control message cm allows
+// address dst through the endpoint c, copying the payload from b. It
+// returns the number of bytes written. The control message cm allows
// the datagram path and the outgoing interface to be specified.
-// Currently only Darwin and Linux support this. The cm may be nil if
+// Currently only Darwin and Linux support this. The cm may be nil if
// control of the outgoing datagram is not required.
func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
if !c.ok() {
diff --git a/vendor/golang.org/x/net/ipv6/control.go b/vendor/golang.org/x/net/ipv6/control.go
index 56303f08d..674628d3f 100644
--- a/vendor/golang.org/x/net/ipv6/control.go
+++ b/vendor/golang.org/x/net/ipv6/control.go
@@ -11,7 +11,7 @@ import (
)
// Note that RFC 3542 obsoletes RFC 2292 but OS X Snow Leopard and the
-// former still support RFC 2292 only. Please be aware that almost
+// former still support RFC 2292 only. Please be aware that almost
// all protocol implementations prohibit using a combination of RFC
// 2292 and RFC 3542 for some practical reasons.
diff --git a/vendor/golang.org/x/net/ipv6/dgramopt_posix.go b/vendor/golang.org/x/net/ipv6/dgramopt_posix.go
index 571430848..a448cbaa5 100644
--- a/vendor/golang.org/x/net/ipv6/dgramopt_posix.go
+++ b/vendor/golang.org/x/net/ipv6/dgramopt_posix.go
@@ -227,7 +227,7 @@ func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source
}
// Checksum reports whether the kernel will compute, store or verify a
-// checksum for both incoming and outgoing packets. If on is true, it
+// checksum for both incoming and outgoing packets. If on is true, it
// returns an offset in bytes into the data of where the checksum
// field is located.
func (c *dgramOpt) Checksum() (on bool, offset int, err error) {
@@ -248,7 +248,7 @@ func (c *dgramOpt) Checksum() (on bool, offset int, err error) {
return true, offset, nil
}
-// SetChecksum enables the kernel checksum processing. If on is ture,
+// SetChecksum enables the kernel checksum processing. If on is ture,
// the offset should be an offset in bytes into the data of where the
// checksum field is located.
func (c *dgramOpt) SetChecksum(on bool, offset int) error {
diff --git a/vendor/golang.org/x/net/ipv6/dgramopt_stub.go b/vendor/golang.org/x/net/ipv6/dgramopt_stub.go
index bc3290ad8..82b0686ae 100644
--- a/vendor/golang.org/x/net/ipv6/dgramopt_stub.go
+++ b/vendor/golang.org/x/net/ipv6/dgramopt_stub.go
@@ -94,14 +94,14 @@ func (c *dgramOpt) IncludeSourceSpecificGroup(ifi *net.Interface, group, source
}
// Checksum reports whether the kernel will compute, store or verify a
-// checksum for both incoming and outgoing packets. If on is true, it
+// checksum for both incoming and outgoing packets. If on is true, it
// returns an offset in bytes into the data of where the checksum
// field is located.
func (c *dgramOpt) Checksum() (on bool, offset int, err error) {
return false, 0, errOpNoSupport
}
-// SetChecksum enables the kernel checksum processing. If on is ture,
+// SetChecksum enables the kernel checksum processing. If on is ture,
// the offset should be an offset in bytes into the data of where the
// checksum field is located.
func (c *dgramOpt) SetChecksum(on bool, offset int) error {
diff --git a/vendor/golang.org/x/net/ipv6/doc.go b/vendor/golang.org/x/net/ipv6/doc.go
index 88383e915..eaa24c580 100644
--- a/vendor/golang.org/x/net/ipv6/doc.go
+++ b/vendor/golang.org/x/net/ipv6/doc.go
@@ -22,7 +22,7 @@
//
// The options for unicasting are available for net.TCPConn,
// net.UDPConn and net.IPConn which are created as network connections
-// that use the IPv6 transport. When a single TCP connection carrying
+// that use the IPv6 transport. When a single TCP connection carrying
// a data flow of multiple packets needs to indicate the flow is
// important, Conn is used to set the traffic class field on the IPv6
// header for each packet.
@@ -57,7 +57,7 @@
//
// The options for multicasting are available for net.UDPConn and
// net.IPconn which are created as network connections that use the
-// IPv6 transport. A few network facilities must be prepared before
+// IPv6 transport. A few network facilities must be prepared before
// you begin multicasting, at a minimum joining network interfaces and
// multicast groups.
//
@@ -81,7 +81,7 @@
// defer c.Close()
//
// Second, the application joins multicast groups, starts listening to
-// the groups on the specified network interfaces. Note that the
+// the groups on the specified network interfaces. Note that the
// service port for transport layer protocol does not matter with this
// operation as joining groups affects only network and link layer
// protocols, such as IPv6 and Ethernet.
@@ -95,7 +95,7 @@
// }
//
// The application might set per packet control message transmissions
-// between the protocol stack within the kernel. When the application
+// between the protocol stack within the kernel. When the application
// needs a destination address on an incoming packet,
// SetControlMessage of PacketConn is used to enable control message
// transmissions.
@@ -144,7 +144,7 @@
// More multicasting
//
// An application that uses PacketConn may join multiple multicast
-// groups. For example, a UDP listener with port 1024 might join two
+// groups. For example, a UDP listener with port 1024 might join two
// different groups across over two different network interfaces by
// using:
//
@@ -165,7 +165,7 @@
// }
//
// It is possible for multiple UDP listeners that listen on the same
-// UDP port to join the same multicast group. The net package will
+// UDP port to join the same multicast group. The net package will
// provide a socket that listens to a wildcard address with reusable
// UDP port when an appropriate multicast address prefix is passed to
// the net.ListenPacket or net.ListenUDP.
diff --git a/vendor/golang.org/x/net/ipv6/endpoint.go b/vendor/golang.org/x/net/ipv6/endpoint.go
index f6a68ab41..ce0b0ce27 100644
--- a/vendor/golang.org/x/net/ipv6/endpoint.go
+++ b/vendor/golang.org/x/net/ipv6/endpoint.go
@@ -55,8 +55,8 @@ func NewConn(c net.Conn) *Conn {
}
// A PacketConn represents a packet network endpoint that uses IPv6
-// transport. It is used to control several IP-level socket options
-// including IPv6 header manipulation. It also provides datagram
+// transport. It is used to control several IP-level socket options
+// including IPv6 header manipulation. It also provides datagram
// based network I/O methods specific to the IPv6 and higher layer
// protocols such as OSPF, GRE, and UDP.
type PacketConn struct {
diff --git a/vendor/golang.org/x/net/ipv6/go19_test.go b/vendor/golang.org/x/net/ipv6/go19_test.go
new file mode 100644
index 000000000..c7cb057d2
--- /dev/null
+++ b/vendor/golang.org/x/net/ipv6/go19_test.go
@@ -0,0 +1,11 @@
+// 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.
+
+// +build go1.9
+
+package ipv6
+
+func init() {
+ disableTests = true
+}
diff --git a/vendor/golang.org/x/net/ipv6/ipv6_test.go b/vendor/golang.org/x/net/ipv6/ipv6_test.go
new file mode 100644
index 000000000..8d2d23542
--- /dev/null
+++ b/vendor/golang.org/x/net/ipv6/ipv6_test.go
@@ -0,0 +1,22 @@
+// 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.
+
+package ipv6
+
+import (
+ "fmt"
+ "os"
+ "testing"
+)
+
+var disableTests = false
+
+func TestMain(m *testing.M) {
+ if disableTests {
+ fmt.Fprintf(os.Stderr, "ipv6 tests disabled in Go 1.9 until netreflect is fixed (Issue 19051)\n")
+ os.Exit(0)
+ }
+ // call flag.Parse() here if TestMain uses flags
+ os.Exit(m.Run())
+}
diff --git a/vendor/golang.org/x/net/ipv6/payload_cmsg.go b/vendor/golang.org/x/net/ipv6/payload_cmsg.go
index 3a33585ef..e853c8059 100644
--- a/vendor/golang.org/x/net/ipv6/payload_cmsg.go
+++ b/vendor/golang.org/x/net/ipv6/payload_cmsg.go
@@ -12,7 +12,7 @@ import (
)
// ReadFrom reads a payload of the received IPv6 datagram, from the
-// endpoint c, copying the payload into b. It returns the number of
+// endpoint c, copying the payload into b. It returns the number of
// bytes copied into b, the control message cm and the source address
// src of the received datagram.
func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
@@ -43,9 +43,9 @@ func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.
}
// WriteTo writes a payload of the IPv6 datagram, to the destination
-// address dst through the endpoint c, copying the payload from b. It
-// returns the number of bytes written. The control message cm allows
-// the IPv6 header fields and the datagram path to be specified. The
+// address dst through the endpoint c, copying the payload from b. It
+// returns the number of bytes written. The control message cm allows
+// the IPv6 header fields and the datagram path to be specified. The
// cm may be nil if control of the outgoing datagram is not required.
func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
if !c.ok() {
diff --git a/vendor/golang.org/x/net/ipv6/payload_nocmsg.go b/vendor/golang.org/x/net/ipv6/payload_nocmsg.go
index 9731cba43..99a43542b 100644
--- a/vendor/golang.org/x/net/ipv6/payload_nocmsg.go
+++ b/vendor/golang.org/x/net/ipv6/payload_nocmsg.go
@@ -12,7 +12,7 @@ import (
)
// ReadFrom reads a payload of the received IPv6 datagram, from the
-// endpoint c, copying the payload into b. It returns the number of
+// endpoint c, copying the payload into b. It returns the number of
// bytes copied into b, the control message cm and the source address
// src of the received datagram.
func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.Addr, err error) {
@@ -26,9 +26,9 @@ func (c *payloadHandler) ReadFrom(b []byte) (n int, cm *ControlMessage, src net.
}
// WriteTo writes a payload of the IPv6 datagram, to the destination
-// address dst through the endpoint c, copying the payload from b. It
-// returns the number of bytes written. The control message cm allows
-// the IPv6 header fields and the datagram path to be specified. The
+// address dst through the endpoint c, copying the payload from b. It
+// returns the number of bytes written. The control message cm allows
+// the IPv6 header fields and the datagram path to be specified. The
// cm may be nil if control of the outgoing datagram is not required.
func (c *payloadHandler) WriteTo(b []byte, cm *ControlMessage, dst net.Addr) (n int, err error) {
if !c.ok() {
diff --git a/vendor/golang.org/x/net/lif/address.go b/vendor/golang.org/x/net/lif/address.go
index f9b34aed0..afb957fd8 100644
--- a/vendor/golang.org/x/net/lif/address.go
+++ b/vendor/golang.org/x/net/lif/address.go
@@ -67,7 +67,7 @@ func Addrs(af int, name string) ([]Addr, error) {
continue
}
sa := (*sockaddrStorage)(unsafe.Pointer(&lifr.Lifru[0]))
- l := int(littleEndian.Uint32(lifr.Lifru1[:4]))
+ l := int(nativeEndian.Uint32(lifr.Lifru1[:4]))
if l == 0 {
continue
}
@@ -77,7 +77,7 @@ func Addrs(af int, name string) ([]Addr, error) {
copy(a.IP[:], lifr.Lifru[4:8])
as = append(as, a)
case sysAF_INET6:
- a := &Inet6Addr{PrefixLen: l, ZoneID: int(littleEndian.Uint32(lifr.Lifru[24:28]))}
+ a := &Inet6Addr{PrefixLen: l, ZoneID: int(nativeEndian.Uint32(lifr.Lifru[24:28]))}
copy(a.IP[:], lifr.Lifru[8:24])
as = append(as, a)
}
diff --git a/vendor/golang.org/x/net/lif/binary.go b/vendor/golang.org/x/net/lif/binary.go
index aade9eafa..738a94f42 100644
--- a/vendor/golang.org/x/net/lif/binary.go
+++ b/vendor/golang.org/x/net/lif/binary.go
@@ -12,7 +12,10 @@ package lif
// library. Therefore the package set used in the package must be the
// same as net package.
-var littleEndian binaryLittleEndian
+var (
+ littleEndian binaryLittleEndian
+ bigEndian binaryBigEndian
+)
type binaryByteOrder interface {
Uint16([]byte) uint16
@@ -66,3 +69,47 @@ func (binaryLittleEndian) PutUint64(b []byte, v uint64) {
b[6] = byte(v >> 48)
b[7] = byte(v >> 56)
}
+
+type binaryBigEndian struct{}
+
+func (binaryBigEndian) Uint16(b []byte) uint16 {
+ _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808
+ return uint16(b[1]) | uint16(b[0])<<8
+}
+
+func (binaryBigEndian) PutUint16(b []byte, v uint16) {
+ _ = b[1] // early bounds check to guarantee safety of writes below
+ b[0] = byte(v >> 8)
+ b[1] = byte(v)
+}
+
+func (binaryBigEndian) Uint32(b []byte) uint32 {
+ _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808
+ return uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24
+}
+
+func (binaryBigEndian) PutUint32(b []byte, v uint32) {
+ _ = b[3] // early bounds check to guarantee safety of writes below
+ b[0] = byte(v >> 24)
+ b[1] = byte(v >> 16)
+ b[2] = byte(v >> 8)
+ b[3] = byte(v)
+}
+
+func (binaryBigEndian) Uint64(b []byte) uint64 {
+ _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808
+ return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |
+ uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
+}
+
+func (binaryBigEndian) PutUint64(b []byte, v uint64) {
+ _ = b[7] // early bounds check to guarantee safety of writes below
+ b[0] = byte(v >> 56)
+ b[1] = byte(v >> 48)
+ b[2] = byte(v >> 40)
+ b[3] = byte(v >> 32)
+ b[4] = byte(v >> 24)
+ b[5] = byte(v >> 16)
+ b[6] = byte(v >> 8)
+ b[7] = byte(v)
+}
diff --git a/vendor/golang.org/x/net/lif/link.go b/vendor/golang.org/x/net/lif/link.go
index 76fa6c687..fce6b2147 100644
--- a/vendor/golang.org/x/net/lif/link.go
+++ b/vendor/golang.org/x/net/lif/link.go
@@ -31,15 +31,15 @@ func (ll *Link) fetch(s uintptr) {
}
ioc := int64(sysSIOCGLIFINDEX)
if err := ioctl(s, uintptr(ioc), unsafe.Pointer(&lifr)); err == nil {
- ll.Index = int(littleEndian.Uint32(lifr.Lifru[:4]))
+ ll.Index = int(nativeEndian.Uint32(lifr.Lifru[:4]))
}
ioc = int64(sysSIOCGLIFFLAGS)
if err := ioctl(s, uintptr(ioc), unsafe.Pointer(&lifr)); err == nil {
- ll.Flags = int(littleEndian.Uint64(lifr.Lifru[:8]))
+ ll.Flags = int(nativeEndian.Uint64(lifr.Lifru[:8]))
}
ioc = int64(sysSIOCGLIFMTU)
if err := ioctl(s, uintptr(ioc), unsafe.Pointer(&lifr)); err == nil {
- ll.MTU = int(littleEndian.Uint32(lifr.Lifru[:4]))
+ ll.MTU = int(nativeEndian.Uint32(lifr.Lifru[:4]))
}
switch ll.Type {
case sysIFT_IPV4, sysIFT_IPV6, sysIFT_6TO4:
@@ -84,7 +84,11 @@ func links(eps []endpoint, name string) ([]Link, error) {
b := make([]byte, lifn.Count*sizeofLifreq)
lifc.Family = uint16(ep.af)
lifc.Len = lifn.Count * sizeofLifreq
- littleEndian.PutUint64(lifc.Lifcu[:], uint64(uintptr(unsafe.Pointer(&b[0]))))
+ if len(lifc.Lifcu) == 8 {
+ nativeEndian.PutUint64(lifc.Lifcu[:], uint64(uintptr(unsafe.Pointer(&b[0]))))
+ } else {
+ nativeEndian.PutUint32(lifc.Lifcu[:], uint32(uintptr(unsafe.Pointer(&b[0]))))
+ }
ioc = int64(sysSIOCGLIFCONF)
if err := ioctl(ep.s, uintptr(ioc), unsafe.Pointer(&lifc)); err != nil {
continue
diff --git a/vendor/golang.org/x/net/lif/sys.go b/vendor/golang.org/x/net/lif/sys.go
new file mode 100644
index 000000000..c896041b7
--- /dev/null
+++ b/vendor/golang.org/x/net/lif/sys.go
@@ -0,0 +1,21 @@
+// 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.
+
+// +build solaris
+
+package lif
+
+import "unsafe"
+
+var nativeEndian binaryByteOrder
+
+func init() {
+ i := uint32(1)
+ b := (*[4]byte)(unsafe.Pointer(&i))
+ if b[0] == 1 {
+ nativeEndian = littleEndian
+ } else {
+ nativeEndian = bigEndian
+ }
+}
diff --git a/vendor/golang.org/x/net/lif/sys_solaris_amd64.s b/vendor/golang.org/x/net/lif/sys_solaris_amd64.s
index 1ebca3739..39d76af79 100644
--- a/vendor/golang.org/x/net/lif/sys_solaris_amd64.s
+++ b/vendor/golang.org/x/net/lif/sys_solaris_amd64.s
@@ -6,6 +6,3 @@
TEXT ·sysvicall6(SB),NOSPLIT,$0-88
JMP syscall·sysvicall6(SB)
-
-TEXT ·keepAlive(SB),NOSPLIT,$0
- RET
diff --git a/vendor/golang.org/x/net/lif/syscall.go b/vendor/golang.org/x/net/lif/syscall.go
index 5fe073620..aadab2e14 100644
--- a/vendor/golang.org/x/net/lif/syscall.go
+++ b/vendor/golang.org/x/net/lif/syscall.go
@@ -19,13 +19,8 @@ var procIoctl uintptr
func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (uintptr, uintptr, syscall.Errno)
-// TODO: replace with runtime.KeepAlive when available
-//go:noescape
-func keepAlive(p unsafe.Pointer)
-
func ioctl(s, ioc uintptr, arg unsafe.Pointer) error {
_, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procIoctl)), 3, s, ioc, uintptr(arg), 0, 0, 0)
- keepAlive(arg)
if errno != 0 {
return error(errno)
}
diff --git a/vendor/golang.org/x/net/proxy/socks5.go b/vendor/golang.org/x/net/proxy/socks5.go
index 9b9628239..973f57f19 100644
--- a/vendor/golang.org/x/net/proxy/socks5.go
+++ b/vendor/golang.org/x/net/proxy/socks5.go
@@ -72,24 +72,28 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
if err != nil {
return nil, err
}
- closeConn := &conn
- defer func() {
- if closeConn != nil {
- (*closeConn).Close()
- }
- }()
+ if err := s.connect(conn, addr); err != nil {
+ conn.Close()
+ return nil, err
+ }
+ return conn, nil
+}
- host, portStr, err := net.SplitHostPort(addr)
+// connect takes an existing connection to a socks5 proxy server,
+// and commands the server to extend that connection to target,
+// which must be a canonical address with a host and port.
+func (s *socks5) connect(conn net.Conn, target string) error {
+ host, portStr, err := net.SplitHostPort(target)
if err != nil {
- return nil, err
+ return err
}
port, err := strconv.Atoi(portStr)
if err != nil {
- return nil, errors.New("proxy: failed to parse port number: " + portStr)
+ return errors.New("proxy: failed to parse port number: " + portStr)
}
if port < 1 || port > 0xffff {
- return nil, errors.New("proxy: port number out of range: " + portStr)
+ return errors.New("proxy: port number out of range: " + portStr)
}
// the size here is just an estimate
@@ -103,17 +107,17 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
}
if _, err := conn.Write(buf); err != nil {
- return nil, errors.New("proxy: failed to write greeting to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to write greeting to SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
if _, err := io.ReadFull(conn, buf[:2]); err != nil {
- return nil, errors.New("proxy: failed to read greeting from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to read greeting from SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
if buf[0] != 5 {
- return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " has unexpected version " + strconv.Itoa(int(buf[0])))
+ return errors.New("proxy: SOCKS5 proxy at " + s.addr + " has unexpected version " + strconv.Itoa(int(buf[0])))
}
if buf[1] == 0xff {
- return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " requires authentication")
+ return errors.New("proxy: SOCKS5 proxy at " + s.addr + " requires authentication")
}
if buf[1] == socks5AuthPassword {
@@ -125,15 +129,15 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
buf = append(buf, s.password...)
if _, err := conn.Write(buf); err != nil {
- return nil, errors.New("proxy: failed to write authentication request to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to write authentication request to SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
if _, err := io.ReadFull(conn, buf[:2]); err != nil {
- return nil, errors.New("proxy: failed to read authentication reply from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to read authentication reply from SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
if buf[1] != 0 {
- return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " rejected username/password")
+ return errors.New("proxy: SOCKS5 proxy at " + s.addr + " rejected username/password")
}
}
@@ -150,7 +154,7 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
buf = append(buf, ip...)
} else {
if len(host) > 255 {
- return nil, errors.New("proxy: destination hostname too long: " + host)
+ return errors.New("proxy: destination hostname too long: " + host)
}
buf = append(buf, socks5Domain)
buf = append(buf, byte(len(host)))
@@ -159,11 +163,11 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
buf = append(buf, byte(port>>8), byte(port))
if _, err := conn.Write(buf); err != nil {
- return nil, errors.New("proxy: failed to write connect request to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to write connect request to SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
if _, err := io.ReadFull(conn, buf[:4]); err != nil {
- return nil, errors.New("proxy: failed to read connect reply from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to read connect reply from SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
failure := "unknown error"
@@ -172,7 +176,7 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
}
if len(failure) > 0 {
- return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " failed to connect: " + failure)
+ return errors.New("proxy: SOCKS5 proxy at " + s.addr + " failed to connect: " + failure)
}
bytesToDiscard := 0
@@ -184,11 +188,11 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
case socks5Domain:
_, err := io.ReadFull(conn, buf[:1])
if err != nil {
- return nil, errors.New("proxy: failed to read domain length from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to read domain length from SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
bytesToDiscard = int(buf[0])
default:
- return nil, errors.New("proxy: got unknown address type " + strconv.Itoa(int(buf[3])) + " from SOCKS5 proxy at " + s.addr)
+ return errors.New("proxy: got unknown address type " + strconv.Itoa(int(buf[3])) + " from SOCKS5 proxy at " + s.addr)
}
if cap(buf) < bytesToDiscard {
@@ -197,14 +201,13 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
buf = buf[:bytesToDiscard]
}
if _, err := io.ReadFull(conn, buf); err != nil {
- return nil, errors.New("proxy: failed to read address from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to read address from SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
// Also need to discard the port number
if _, err := io.ReadFull(conn, buf[:2]); err != nil {
- return nil, errors.New("proxy: failed to read port from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ return errors.New("proxy: failed to read port from SOCKS5 proxy at " + s.addr + ": " + err.Error())
}
- closeConn = nil
- return conn, nil
+ return nil
}
diff --git a/vendor/golang.org/x/net/publicsuffix/table.go b/vendor/golang.org/x/net/publicsuffix/table.go
index bf20c036b..5db1e6986 100644
--- a/vendor/golang.org/x/net/publicsuffix/table.go
+++ b/vendor/golang.org/x/net/publicsuffix/table.go
@@ -2,7 +2,7 @@
package publicsuffix
-const version = "publicsuffix.org's public_suffix_list.dat, git revision 915565885d0fbd25caf7d8b339cd3478f558da94 (2016-10-19T08:16:09Z)"
+const version = "publicsuffix.org's public_suffix_list.dat, git revision 45a2bf8ef3e22000fbe4bfa5f9252db41d777001 (2017-01-18T01:04:06Z)"
const (
nodesBitsChildren = 9
@@ -23,446 +23,447 @@ const (
)
// numTLD is the number of top level domains.
-const numTLD = 1553
+const numTLD = 1554
// Text is the combined text of all labels.
-const text = "biellaakesvuemieleccebieszczadygeyachimatainaircraftraeumtgerade" +
- "alstahaugesunderseaportsinfolldalaskanittedallasalleasinglesango" +
- "ppdalinzaintuitateshinanomachintaifun-dnsaliaskimitsubatamicable" +
- "-modembetsukuinuyamanouchikuhokuryugasakitaurayasudabievatmallor" +
- "cadaquesanjotateyamabifukagawalmartatsunobihorologyuzhno-sakhali" +
- "nskaszubybikedagestangebilbaogakievenesannaninomiyakonojoshkar-o" +
- "lawabillustrationirasakinvestmentsannohelplfinancialipetskatowic" +
- "ebiobirdartcenterprisesakikuchikuseikarugapartmentsanokatsushika" +
- "beeldengeluidunloppacificasinore-og-uvdalivornobirkenesoddtangen" +
- "ovarabirthplacebjarkoybjerkreimdbalatinorddalillyonagoyastronomy" +
- "asustor-elvdalwaysdatabaseballangenoamishirasatochigiessenebakke" +
- "shibechambagriculturennebudapest-a-la-masionativeamericanantique" +
- "s3-ap-northeast-2bjugnieznordlandunsantabarbarablockbusternidupo" +
- "ntariobloombergbauernrtattoolsztynsettlersantacruzsantafedextras" +
- "pace-to-rentalstomakomaibarabloxcmsanukis-a-candidatebluedaplier" +
- "neustarhubalestrandabergamoarekeymachineues3-us-west-1bmoattachm" +
- "entsaotomeloyalistjordalshalsenishiazais-a-catererbmsapodhalewis" +
- "millerbmweirbnpparibaselburgloppenzaogashimadachicagoboatsapporo" +
- "bnrwfarmsteadurbanamexhibitionishigotsukisosakitagawabomloanswat" +
- "ch-and-clockerbondurhamburgmbhartiffanybonnishiharabookingminaka" +
- "michiharabootsaratovalleaostatoilomzaporizhzheguris-a-celticsfan" +
- "ishiizunazukis-a-chefarsundvrcambridgestonewyorkshirecreationish" +
- "ikatakayamatsuzakis-a-conservativefsncfdvrdnsiskinkyotobetsumida" +
- "tlanticateringebudejjuedischesapeakebayernurembergmodenakanotodd" +
- "enishikatsuragithubusercontentaxihuanishikawazukanazawaboschaeff" +
- "lerdalorenskogmxfinitybostikatsuyamaseratis-a-cpadoval-daostaval" +
- "leybostonakijinsekikogentingrimstadwgripebotanicalgardenishimera" +
- "botanicgardenishinomiyashironobotanybouncemerckmsdnipropetrovskl" +
- "eppalmspringsakerbounty-fullensakerrypropertiesardegnamsosnowiec" +
- "atholicheltenham-radio-openair-traffic-controlleyboutiquebecngri" +
- "wataraidyndns-ipamperedchefashionishinoomotegovtgorybozentsujiie" +
- "bradescorporationishinoshimatta-varjjatjeldsundyndns-mailotenkaw" +
- "abrandywinevalleybrasiliabresciabrindisibenikebristolgaulardalot" +
- "tebritishcolumbialowiezaganquannefrankfurtjmaxxxjaworznowtvalled" +
- "-aostavangerbroadcastleclerchelyabinskypescaravantaabroadwaybrok" +
- "e-itjometlifeinsurancebrokerbronnoysundyndns-office-on-the-webca" +
- "mpobassociatesardiniabrothermesaverdeatnuorockartuzybrowsersafet" +
- "ymarketsarlottokorozawabrumunddalouvreitjxn--0trq7p7nnishiokoppe" +
- "gardyndns-picsarpsborgroks-thisayamanashiibaghdadultkmaxxn--11b4" +
- "c3dyndns-remotegildeskalmykiabrunelblagdenesnaaseralingenkainana" +
- "ejrietisalatinabenoboribetsucksarufutsunomiyawakasaikaitakoelnis" +
- "hitosashimizunaminamiashigarabrusselsasayamabruxellesaseboknowsi" +
- "tallowiczest-le-patrondheimperiabryanskodjeepostfoldnavyatkakami" +
- "gaharabrynewhampshirebungoonordreisa-geekaufenishiwakis-a-cubicl" +
- "e-slavellinotteroybuskerudinewhollandyndns-servercellikes-piedmo" +
- "ntblancomeeresaskatchewanggouvicenzabuzenissandnessjoenissayokos" +
- "hibahikariwanumatakazakis-a-democratmpanamabuzzgradyndns-weberli" +
- "ncolnissedalucaniabwhalingrondarbzhitomirkutskydivingrongacomput" +
- "erhistoryofscience-fictioncomsecuritytacticschulezajskddielddanu" +
- "orrikuzentakatajirissagamiharacondoshichinohealth-carereformitak" +
- "eharaconferenceconstructionconsuladoharuhrconsultanthropologycon" +
- "sultingvollutskfhappoumuenchencontactoyotomiyazakis-a-geekgalaxy" +
- "contemporaryarteducationalchikugojomedio-campidano-mediocampidan" +
- "omediocontractorskenconventureshinodesashibetsuikinderoycookingc" +
- "hannelveruminamibosogndaluxembourgujolstercoolkuszippodlasiellak" +
- "asamatsudovre-eikercoopencraftoyotsukaidownloadcopenhagencyclope" +
- "dichernovtsykkylvenetogakushimotoganewmexicoldwarmiamiastalowa-w" +
- "oladbrokesassaris-a-designerimarumorimachidacorsicagliaridagawal" +
- "tercorvettenrightathomegoodschwarzgwangjuifminamidaitomangotemba" +
- "ixadacosenzamamibuilderschmidtre-gauldaluxurycostumedizinhistori" +
- "scheschweizjcbnluzerncouchpotatofriesciencecentersciencehistoryc" +
- "ouncilvivano-frankivskhabarovskhakassiacouponscientistockholmest" +
- "randcoursescjohnsoncq-acranbrookuwanalyticscotlandcreditcardcred" +
- "itunioncremonashorokanaiecrewiiheyaizuwakamatsubushikusakadogawa" +
- "cricketrzyncrimeacrotonewspapercrownprovidercrsvparaglidingulenc" +
- "ruisescrapper-sitecryptonomichigangwoncuisinellajollamericanexpr" +
- "essexyculturalcentertainmentoyouracuneocupcakecxn--1ctwolominama" +
- "takkofuefukihabororostrowwlkpmgunmarnardalcymruovatoystre-slidre" +
- "ttozawacyonabarussiacyouthdfcbankzlguovdageaidnufcfanfieldfiguer" +
- "estaurantozsdefilateliafilminamiechizenfinalfinancefineartservef" +
- "tparisor-fronfinlandfinnoyfirebaseapparliamentranbyfirenzefirest" +
- "onexus-east-1firmdaleirfjordfishingolffanservegame-serverisignfi" +
- "tjarqhachiojiyahikobeatservehalflifestylefitnessettlementrani-an" +
- "dria-barletta-trani-andriafjalerflesbergflickragerotikamakurazak" +
- "irkeneservehttparmaflightservehumourflirumansionserveirchiryukyu" +
- "ragifuchukotkakegawassamukawataricohdavvenjargausdaluccapitalone" +
- "wjerseyflogintogurafloraflorencefloridafloristanohatakaharulvikh" +
- "arkovalledaostavernflorokunohealthcareerserveminecraftraniandria" +
- "barlettatraniandriaflowerservemp3utilitiesquarezzoologicalvinkle" +
- "in-addrammenuernbergdyniabogadocscbggfareastcoastaldefence-burgj" +
- "emnes3-ap-northeast-1kappleaseating-organicbcg12000emmafanconaga" +
- "wakayamadridvagsoyericsson-aptibleangaviikadenaamesjevuemielno-i" +
- "p6flynnhubalsfjordiscountysnes3-us-west-2fndfoodnetworkshoppingf" +
- "or-ourfor-someetnedalfor-theaterforexrothruheredstoneforgotdnser" +
- "vep2parocherkasyzrankoshigayaltaijis-a-greenforli-cesena-forlice" +
- "senaforlikescandyndns-at-workinggrouparservepicservequakeforsale" +
- "irvikhersonforsandasuoloftranoyfortmissoulan-udefenseljordfortwo" +
- "rthachirogatakamoriokamikitayamatotakadaforuminamifuranofosneser" +
- "vesarcasmatartanddesignfotaruis-a-gurunzenfoxfordegreefreeboxost" +
- "rowiechitachinakagawatchandclockazimierz-dolnyfreemasonryfreibur" +
- "gfreightcmwildlifedjejuegoshikiminokamoenairlinedre-eikerfreseni" +
- "uscountryestateofdelawaredumbrellanbibaidarfribourgfriuli-v-giul" +
- "iafriuli-ve-giuliafriuli-vegiuliafriuli-venezia-giuliafriuli-ven" +
- "eziagiuliafriuli-vgiuliafriuliv-giuliafriulive-giuliafriulivegiu" +
- "liafriulivenezia-giuliafriuliveneziagiuliafriulivgiuliafrlfrogan" +
- "servicesettsurgeonshalloffamemergencyberlevagangaviikanonjis-a-h" +
- "ard-workerfrognfrolandfrom-akrehamnfrom-alfrom-arfrom-azpartis-a" +
- "-hunterfrom-capebretonamiasakuchinotsuchiurakawarszawashingtondc" +
- "lkhmelnitskiyamasfjordenfrom-collectionfrom-ctransportransurlfro" +
- "m-dchitosetogitsuldalucernefrom-dell-ogliastrakhanawafrom-flande" +
- "rsevastopolefrom-gafrom-higashiagatsumagoirminamiiselectrapaniim" +
- "imatakatoris-a-knightpointtokamachippubetsubetsugaruslivinghisto" +
- "ryfrom-iafrom-idfrom-ilfrom-incheonfrom-ksevenassisicilyfrom-kyo" +
- "wariasahikawafrom-lancashireggio-calabriafrom-manxn--1qqw23afrom" +
- "-mdfrom-meguromskoguchikuzenfrom-microsoftbankhmelnytskyivallee-" +
- "aosteroyfrom-mnfrom-mochizukirovogradoyfrom-msewilliamhillfrom-m" +
- "tnfrom-nchloefrom-ndfrom-nefrom-nhktravelchannelfrom-njcpartners" +
- "franziskanerdpolicefrom-nminamiizukamitondabayashiogamagoriziafr" +
- "om-nvalleeaosteigenfrom-nyfrom-ohkurafrom-oketohmaorivnefrom-orf" +
- "rom-paderbornfrom-pratohnoshoooshikamaishimofusartshangrilangeva" +
- "grarboretumbriafrom-ris-a-landscaperugiafrom-schoenbrunnfrom-sdf" +
- "rom-tnfrom-txn--2m4a15efrom-utazuerichardlillehammerfest-mon-blo" +
- "gueurovisionfrom-vaksdalfrom-vtravelersinsurancefrom-wafrom-wiel" +
- "unnerfrom-wvanylvenicefrom-wyfrosinonefrostalbansharis-a-lawyerf" +
- "royahabadajozoraholtalenvironmentalconservationfstavropolitienda" +
- "fujiiderafujikawaguchikonefujiminohtawaramotoineppubolognakaniik" +
- "awatanagurafujinomiyadafujiokayamapartsharpartyfujisatoshonairpo" +
- "rtland-4-salernogatagajobojis-a-liberalfujisawafujishiroishidaka" +
- "biratoridellogliastraderfujitsurugashimamateramodalenfujixeroxn-" +
- "-30rr7yfujiyoshidafukayabeardubaiduckdnshomebuiltrdfukuchiyamada" +
- "fukudominichocolatemasekazofukuis-a-libertarianfukumitsubishigak" +
- "iryuohadanoshiroomurafukuokazakisarazurewebsiteshikagamiishibuka" +
- "wafukuroishikarikaturindalfukusakishiwadafukuyamagatakahashimama" +
- "kisofukushimarburgfunabashiriuchinadafunagatakahatakaishimoichin" +
- "osekigaharafunahashikamiamakusatsumasendaisennangonohejis-a-linu" +
- "x-useranishiaritabashikaoizumizakitchenfundaciofuoiskujukuriyama" +
- "rcheapasadenaklodzkodairafuosskoczowinbaltimore-og-romsdalimited" +
- "iscoveryonaguniversityoriikashibatakashimarylhurstjohnaval-d-aos" +
- "ta-valleyukibestadishakotankashiharaukraanghkepnord-frontierepai" +
- "rbusantiquest-a-la-maisondre-landebusinessebyklefrakkestadds3-ap" +
- "-southeast-2furnitureggio-emilia-romagnakanojohanamakinoharafuru" +
- "biraquarellebesbyglandfurudonostiafurukawairtelecityeatshawaiiji" +
- "marugame-hostingfusodegaurafussaintlouis-a-anarchistoireggiocala" +
- "briafutabayamaguchinomigawafutboldlygoingnowhere-for-moregontrai" +
- "lroadfuttsurugiminamimakis-a-llamarylandfuturemailingfvgfyis-a-m" +
- "usicianfylkesbiblackfridayfyresdalhannanmokuizumodernhannovarese" +
- "rveblogspotrentino-a-adigehanyuzenhapmirhareidsbergenharstadharv" +
- "estcelebrationhasamarahasaminami-alpssells-itrentino-aadigehashb" +
- "anghasudahasura-appassenger-associationhasviklabudhabikinokawaba" +
- "rthaebaruminamiminowahatogayahoohatoyamazakitahiroshimarriottren" +
- "tino-alto-adigehatsukaichikaiseis-a-painteractivegarsheis-a-pats" +
- "fanhattfjelldalhayashimamotobuildinghazuminobusellsyourhomeipavi" +
- "ancargodaddyndns-at-homednshimonosekikawahboehringerikehelsinkit" +
- "akamiizumisanofidelitysvardollshimosuwalkis-a-personaltrainerhem" +
- "bygdsforbundhemneshimotsukehemsedalhepforgeherokussldheroyhgtvsh" +
- "imotsumahigashichichibungotakadatinghigashihiroshimanehigashiizu" +
- "mozakitakatakanezawahigashikagawahigashikagurasoedahigashikawaki" +
- "taaikitakyushuaiahigashikurumeiwamarshallstatebankmpspbamblebtim" +
- "netz-2higashimatsushimarinehigashimatsuyamakitaakitadaitoigawahi" +
- "gashimurayamalatvuopmidoris-a-photographerokuappfizerhigashinaru" +
- "sembokukitamidsundhigashinehigashiomihachimanchesterhigashiosaka" +
- "sayamamotorcycleshinichinanhigashishirakawamatakaokamikoaniikapp" +
- "ugliahigashisumiyoshikawaminamiaikitamotosumitakaginankokubunjis" +
- "-a-playerhigashitsunotogawahigashiurausukitanakagusukumoduminami" +
- "ogunicomcastresistancehigashiyamatokoriyamanakakogawahigashiyodo" +
- "gawahigashiyoshinogaris-a-republicancerresearchaeologicalifornia" +
- "hiraizumisatohobby-sitehirakatashinagawahiranairtraffichofunator" +
- "ientexpressatxn--1ck2e1balsanagochihayaakasakawaharavennagasakik" +
- "onaikawachinaganoharamcoalaheadjudaicaaarborteaches-yogasawaraci" +
- "ngroks-theatreemersongdalenviknakamuratakahamannortonsbergladelm" +
- "enhorstackspacekitagataiwanairguardigitalimanowarudaugustowadaeg" +
- "ubs3-ap-southeast-1hirarahiratsukagawahirayaitakarazukamiminersh" +
- "injournalismailillesandefjordhistorichouseshinjukumanohitachiomi" +
- "yaginowaniihamatamakawajimaritimodellinghitachiotagooglecodespot" +
- "rentino-altoadigehitoyoshimifunehitradinghjartdalhjelmelandholec" +
- "kobierzyceholidayhomelinuxn--32vp30hagakhanamigawahomesecurityma" +
- "ceratakasagoperaunitextileitungsenhomesecuritypccwindmillhomesen" +
- "seminehomeunixn--3bst00minamisanrikubetsupplyhondahoneywellbeing" +
- "zonehongorgehonjyoitakasakitashiobarahornindalhorseoulminamitane" +
- "hortendofinternetrentino-s-tirollagrigentomologyhoteleshinkamigo" +
- "toyohashimototalhotmailhoyangerhoylandetroitskokonoehumanitieshi" +
- "nshinotsurgeryhurdalhurumajis-a-rockstarachowicehyllestadhyogori" +
- "s-a-socialistmeindianapolis-a-bloggerhyugawarahyundaiwafunehzcho" +
- "nanbugattipschlesischesaudajgorajlchoshibuyachiyodavvesiidazaifu" +
- "daigodoesntexistanbullensvanguardyndns-wikindleikangerjlljmpharm" +
- "acienshiojirishirifujiedajnjelenia-gorajoyentrentino-sued-tirolj" +
- "oyokaichibahcavuotnagaraumalselvendrelljpmorganjpnchoyodobashich" +
- "ikashukujitawarajprshioyamemorialjuniperjurkristiansundkrodshera" +
- "dkrokstadelvaldaostarnbergkryminamiyamashirokawanabelgorodeokuma" +
- "torinokumejimassa-carrara-massacarraramassabunkyonanaoshimageand" +
- "soundandvisionkumenanyokkaichirurgiens-dentistes-en-francekunisa" +
- "kis-an-artistcgroupgfoggiakunitachiarailwaykunitomigusukumamotoy" +
- "amasoykunneppulawykunstsammlungkunstunddesignkuokgrouphdkureisen" +
- "kurgankurobelaudibleborkdalkurogimilitarykuroisoftwarendalenugku" +
- "romatsunais-an-engineeringkurotakikawasakis-an-entertainerkursko" +
- "mmunalforbundkushirogawakustanais-bykusupplieshiranukaniepcekutc" +
- "hanelkutnokuzbassnillfjordkuzumakis-certifiedogawarabikomaezakir" +
- "unorthwesternmutualkvafjordkvalsundkvamfamberkeleykvanangenkvine" +
- "sdalkvinnheradkviteseidskogkvitsoykwpspjelkavikommunemitourismol" +
- "anciamitoyoakemiuramiyazumiyotamanomjondalenmlbfanmonmouthagebos" +
- "tadmonstermonticellombardiamondshiraois-into-carshintomikasahara" +
- "montrealestatefarmequipmentrentino-suedtirolmonza-brianzaporizhz" +
- "hiamonza-e-della-brianzapposhiraokanmakiyokawaramonzabrianzaptok" +
- "yotangotpantheonsitemonzaebrianzaramonzaedellabrianzamoparachuti" +
- "ngmordoviajessheiminanomoriyamatsunomoriyoshiokamitsuemormoneymo" +
- "royamatsusakahoginozawaonsenmortgagemoscowindowshiratakahagivest" +
- "bytomaritimekeepingmoseushistorymosjoenmoskeneshishikuis-into-ca" +
- "rtoonshinyoshitomiokaneyamaxunusualpersonmosshisognemosvikomorot" +
- "sukamisunagawamoviemovistargardmtpchristmasakikugawatchesauherad" +
- "yndns-workisboringrossetouchijiwadeloittevadsoccertificationissh" +
- "ingugemtranakatsugawamuenstermugithubcloudusercontentrentinoa-ad" +
- "igemuikamogawamukochikushinonsenergymulhouservebeermunakatanemun" +
- "cieszynmuosattemuphiladelphiaareadmyblogsitemurmanskomvuxn--3ds4" +
- "43gmurotorcraftrentinoaadigemusashimurayamatsushigemusashinohara" +
- "museetrentinoalto-adigemuseumverenigingmutsuzawamutuellevangermy" +
- "dissentrentinoaltoadigemydrobofagemydshisuifuelmyeffectrentinos-" +
- "tirolmyfritzwinnershitaramamyftphilatelymykolaivarggatrentinosti" +
- "rolmymediapchromedicaltanissettaishinomakimobetsuliguriamyokoham" +
- "amatsudamypepsonyoursidedyn-o-saurecipesaro-urbino-pesarourbinop" +
- "esaromamurogawawioshizukuishimogosenmypetshizuokannamiharumyphot" +
- "oshibahccavuotnagareyamalvikongsbergmypsxn--3e0b707emysecurityca" +
- "merakermyshopblockshoujis-into-gamessinashikiwakunigamihamadamyt" +
- "is-a-bookkeepermincommbankomonomyvnchryslerpictetrentinosud-tiro" +
- "lpictureshowtimeteorapphoenixn--3oq18vl8pn36apiemontepilotshrira" +
- "mlidlugolekagaminogiftsienaplesigdalpimientaketomisatomskongsvin" +
- "gerpinkoninjamisonpioneerpippuphonefosshowapiszpittsburghofastly" +
- "piwatepizzapkonskowolayangroupharmacyshirahamatonbetsurgutsiracu" +
- "saitoshimaplanetariuminnesotaketakatsukis-foundationplantationpl" +
- "antsilkonsulatrobeepilepsydneyplatformintelligenceplaystationpla" +
- "zaplchungbukazunoplombardyndns-blogdnsimbirskonyvelolplumbingopm" +
- "npodzonepohlpoivronpokerpokrovskooris-a-techietis-a-soxfanpolkow" +
- "icepoltavalle-aostarostwodzislawitdkopervikomforbananarepublicar" +
- "toonartdecoffeedbackplaneappalacemreviewskrakoweddinglassassinat" +
- "ionalheritagematsubarakawagoeu-1pomorzeszowithgoogleapisa-hockey" +
- "nutrentinosudtirolpordenonepornporsangerporsanguideltajimicrolig" +
- "htingporsgrunnanpoznanpraxis-a-bruinsfanprdpreservationpresidiop" +
- "rgmrprimelhusgardenprincipeprivatizehealthinsuranceprochowicepro" +
- "ductionsimple-urlprofauskedsmokorsetagayasells-for-ulsandoyprogr" +
- "essivegasiaprojectrentinosued-tirolpromombetsurfbsbxn--1lqs03npr" +
- "opertyprotectionprotonetrentinosuedtirolprudentialpruszkowithyou" +
- "tubeneventoeidsvollprzeworskogptplusterptzpvtrentoyonakagyokutoy" +
- "akokamishihoronobeokaminoyamatsuris-leetrentino-stirolpwchungnam" +
- "dalseidfjordynnsavannahgapzqldqponqslgbtrevisohughesirdalquicksy" +
- "teslingqvchurchaseljeffersoniyodogawastoragestordalstorenburgsto" +
- "rfjordstpetersburgstreamsterdamnserverbaniastudiostudyndns-homef" +
- "tpaccessnoasakakinokiastuff-4-salestufftoread-booksnesnzstuttgar" +
- "trogstadsurreysusakis-not-certifieducatorahimeshimakanegasakinko" +
- "bayashikshacknethnologysusonosuzakanrasuzukanumazurysuzukis-save" +
- "dunetbankolobrzegersundsvalbardudinkakudamatsuesveiosvelvikoseis" +
- "-a-therapistoiasvizzeraswedenswidnicarrierswiebodzindianmarketin" +
- "gswiftcoveronaritakurashikis-slickomaganeswinoujscienceandhistor" +
- "yswisshikis-uberleetrentino-sud-tirolturystykarasjohkamiokaminok" +
- "awanishiaizubangetuscanytushuissier-justicetuvalle-daostatichuva" +
- "shiatuxfamilyversicherungvestfoldvestnesolutionslupskoryolasitev" +
- "estre-slidreamhostersomavestre-totennishiawakuravestvagoyvevelst" +
- "advibo-valentiavibovalentiavideovillaskoyabearalvahkijobserverda" +
- "lvdalcesomnarashinovinnicartiervinnytsiavipsinaapphotographysiov" +
- "irginiavirtualvirtueeldomeindustriesteambulancevirtuelvisakegawa" +
- "vistaprinternationalfirearmsooviterboltromsakatakinouevivoldavla" +
- "dikavkazanvladimirvladivostokaizukarasuyamazoevlogoipiagetmyiphi" +
- "lipsyvolkenkundenvolkswagentsopotritonvologdanskoshunantokonameg" +
- "atakasugais-an-accountantshinshirovolvolgogradvolyngdalvoronezhy" +
- "tomyrvossevangenvotevotingvotoyonezawavrnworldworse-thanggliding" +
- "wowiwatsukiyonowruzhgorodoywritesthisblogsytewroclawloclawekostr" +
- "omahachijorpelandwtcirclegnicafederationwtfbx-oslodingenwuozuwww" +
- "mflabsor-odalwzmiuwajimaxn--4gq48lf9jeonnamerikawauexn--4it168dx" +
- "n--4it797kotohiradomainsurehabmerxn--4pvxsor-varangerxn--54b7fta" +
- "0ccitichernigovernmentoyookanzakiyosatokigawaxn--55qw42gxn--55qx" +
- "5dxn--5js045dxn--5rtp49civilaviationxn--5rtq34kotouraxn--5su34j9" +
- "36bgsgxn--5tzm5gxn--6btw5axn--6frz82gxn--6orx2rxn--6qq986b3xlxn-" +
- "-7t0a264civilisationxn--80adxhksorfoldxn--80ao21axn--80aqecdr1ax" +
- "n--80asehdbarclaycardsakuraibigawaurskog-holandroverhalla-spezia" +
- "grocerybnikahokutobishimaizurubtsovskiervaapsteiermarkariyakumol" +
- "dev-myqnapcloudcontrolappagefrontappagespeedmobilizerobiraeropor" +
- "talabamagasakishimabarackmaze12xn--80aswgxn--80audnedalnxn--8ltr" +
- "62kouhokutamakis-an-actorxn--8pvr4uxn--8y0a063axn--90a3academyac" +
- "tivedirectoryazannakadomari-elasticbeanstalkounosunndalxn--90ais" +
- "hobaraomoriguchiharahkkeravjudygarlandxn--90azhaibarakitahatakan" +
- "abeautydalxn--9dbhblg6dietcimmobilienxn--9dbq2axn--9et52uxn--9kr" +
- "t00axn--andy-iraxn--aroport-byanagawaxn--asky-iraxn--aurskog-hla" +
- "nd-jnbarclaysakyotanabellunordkappgafanpachigasakidsmynasushioba" +
- "ragusaarlandiskstationavigationavuotnakayamatsuuraustevollavagis" +
- "kebinagisochildrensgardenaturalhistorymuseumcenterepbodyndns-fre" +
- "ebox-oskolegokasells-for-less3-eu-central-1xn--avery-yuasakuhokk" +
- "aidontexisteingeekouyamashikis-an-actresshintokushimaxn--b-5gaxn" +
- "--b4w605ferdxn--bck1b9a5dre4civilizationxn--bdddj-mrabdxn--beara" +
- "lvhki-y4axn--berlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-k7axn-" +
- "-bidr-5nachikatsuuraxn--bievt-0qa2xn--bjarky-fyanaizuxn--bjddar-" +
- "ptamayufuettertdasnetzxn--blt-elabourxn--bmlo-graingerxn--bod-2n" +
- "aroyxn--brnny-wuaccident-investigationjukudoyamagadancebetsukuba" +
- "bia-goracleaningatlantabusebastopologyeonggiehtavuoatnadexeterim" +
- "o-i-ranagahamaroygardendoftheinternetflixilovecollegefantasyleag" +
- "uernseyxn--brnnysund-m8accident-preventionlineat-urlxn--brum-voa" +
- "gatromsojavald-aostaplesokanoyakagexn--btsfjord-9zaxn--c1avgxn--" +
- "c2br7gxn--c3s14misasaguris-into-animelbournexn--cck2b3barefootba" +
- "llooningliwiceventsalangenayoroddaustinnaturalsciencesnaturelles" +
- "3-eu-west-1xn--cg4bkis-very-badaddjamalborkangerxn--ciqpnxn--clc" +
- "hc0ea0b2g2a9gcdn77-sslattumisawaxn--comunicaes-v6a2oxn--correios" +
- "-e-telecomunicaes-ghc29axn--czr694bargainstitutelemarkashiwaraus" +
- "traliaisondriodejaneirochestereportarantours3-external-1xn--czrs" +
- "0trusteexn--czru2dxn--czrw28barreauctionflfanfshostrodawaraustrh" +
- "eimatunduhrennesoyokotebinorilskarlsoyokozebizenakamagayachts3-e" +
- "xternal-2xn--d1acj3barrel-of-knowledgeologyukuhashimojibmditchyo" +
- "uripalanakhodkanagawauthordalandroidgcahcesuolocalhistoryggeelvi" +
- "nckarmoyomitanobninskarpaczeladz-1xn--d1alfaromeoxn--d1atrvbarce" +
- "lonagasukeu-2xn--d5qv7z876civilwarmanagementoyosatoyokawaxn--dav" +
- "venjrga-y4axn--djrs72d6uyxn--djty4kouzushimashikokuchuoxn--dnna-" +
- "grajewolterskluwerxn--drbak-wuaxn--dyry-iraxn--e1a4claimsaves-th" +
- "e-whalessandria-trani-barletta-andriatranibarlettaandriaxn--eckv" +
- "dtc9dxn--efvn9sorreisahayakawakamiichikawamisatottoris-lostre-to" +
- "teneis-a-studentalxn--efvy88hair-surveillancexn--ehqz56nxn--elqq" +
- "16hakatanotaireshimokawaxn--estv75gxn--eveni-0qa01gaxn--f6qx53ax" +
- "n--fct429kozagawaxn--fhbeiarnxn--finny-yuaxn--fiq228c5hsortlandx" +
- "n--fiq64barrell-of-knowledgeometre-experts-comptablesalondonetsk" +
- "ashiwazakiyosemiteverbankasukabedzin-the-bandaioiraseeklogesuran" +
- "certmgretachikawakkanaibetsubamericanfamilydscloudcontrolledekaf" +
- "jordivtasvuodnagatorogersaltdalimoliserniautomotivecodynaliascol" +
- "i-picenoipirangamvikaruizawamusementaobaokinawashirosatochiokino" +
- "shimakeupowiathletajimabariakembuchikumagayagawakuyabukihokumako" +
- "gengerdalipayekaterinburgjerdrumckinseyokosukareliance164xn--fiq" +
- "s8sorumisakis-gonexn--fiqz9southcarolinazawaxn--fjord-lraxn--fjq" +
- "720axn--fl-ziaxn--flor-jraxn--flw351exn--fpcrj9c3dxn--frde-grand" +
- "rapidsouthwestfalenxn--frna-woaraisaijosoyrovigorlicexn--frya-hr" +
- "axn--fzc2c9e2clickchristiansburgroundhandlingroznyxn--fzys8d69uv" +
- "gmailxn--g2xx48clinichernihivanovosibirskautokeinoxn--gckr3f0fbx" +
- "ostrolekaluganskharkivgucciprianiigataitogliattirescrappingushik" +
- "amifuranosegawaxn--gecrj9cliniquenoharaxn--ggaviika-8ya47hakodat" +
- "exn--gildeskl-g0axn--givuotna-8yandexn--3pxu8kosugexn--gjvik-wua" +
- "xn--gk3at1exn--gls-elacaixaxn--gmq050is-very-evillagexn--gmqw5ax" +
- "n--h-2failxn--h1aeghakonexn--h2brj9clintonoshoesavonamsskoganeis" +
- "-a-doctorayxn--hbmer-xqaxn--hcesuolo-7ya35bashkiriautoscanadaeje" +
- "onbukarumaifarmerseinextdirectargets-itargivingjesdalavangenatur" +
- "bruksgymnaturhistorisches3-fips-us-gov-west-1xn--hery-iraxn--hge" +
- "bostad-g3axn--hmmrfeasta-s4acctrysiljan-mayenxn--hnefoss-q1axn--" +
- "hobl-iraxn--holtlen-hxaxn--hpmir-xqaxn--hxt814exn--hyanger-q1axn" +
- "--hylandet-54axn--i1b6b1a6a2exn--imr513nxn--indery-fyaotsurnadal" +
- "xn--io0a7is-very-goodhandsonxn--j1aefermobilyxn--j1amhakubankhva" +
- "olbia-tempio-olbiatempioolbialystokkemerovodkagoshimalopolskanla" +
- "ndxn--j6w193gxn--jlq61u9w7basilicataniaveroykeniwaizumiotsukumiy" +
- "amazonawsabaerobaticketsaritsynologyeongnamegawakeisenbahnatuurw" +
- "etenschappenaumburgjovikasaokamisatokashikiwienaustdalazioceanog" +
- "raphics3-sa-east-1xn--jlster-byaroslavlaanderenxn--jrpeland-54ax" +
- "n--jvr189misconfusedxn--k7yn95exn--karmy-yuaxn--kbrq7oxn--kcrx77" +
- "d1x4axn--kfjord-iuaxn--klbu-woaxn--klt787dxn--kltp7dxn--kltx9axn" +
- "--klty5xn--42c2d9axn--koluokta-7ya57hakuis-a-nascarfanxn--kprw13" +
- "dxn--kpry57dxn--kpu716ferraraxn--kput3is-very-nicexn--krager-gya" +
- "sakaiminatoyonoxn--kranghke-b0axn--krdsherad-m8axn--krehamn-dxax" +
- "n--krjohka-hwab49jetztrentino-sudtirolxn--ksnes-uuaxn--kvfjord-n" +
- "xaxn--kvitsy-fyasugis-very-sweetpepperxn--kvnangen-k0axn--l-1fai" +
- "rwindsowaxn--l1accentureklamborghiniizaxn--laheadju-7yasuokarate" +
- "xn--langevg-jxaxn--lcvr32dxn--ldingen-q1axn--leagaviika-52basket" +
- "ballfinanzgoravocatanzarowebhopocznoceanographiquehimeji234xn--l" +
- "esund-huaxn--lgbbat1ad8jevnakershuscultureggioemiliaromagnakasat" +
- "sunais-a-teacherkassymantechnologyxn--lgrd-poacoachampionshiphop" +
- "tobamagazinebraskaunjargallupinbatodayurihonjournalisteinkjerusa" +
- "lembroideryusuharavoues3-us-gov-west-1xn--lhppi-xqaxn--linds-pra" +
- "mericanartulansokndalxn--lns-qlanxesspreadbettingxn--loabt-0qaxn" +
- "--lrdal-sraxn--lrenskog-54axn--lt-liaclothingrpanasonichernivtsi" +
- "ciliaxn--lten-granexn--lury-iraxn--mely-iraxn--merker-kuaxn--mgb" +
- "2ddespydebergxn--mgb9awbferrarittogoldpoint2thisamitsukexn--mgba" +
- "3a3ejtunesolarssonxn--mgba3a4f16axn--mgba3a4franamizuholdingsmil" +
- "eksvikozakis-an-anarchistoricalsocietyumenxn--mgba7c0bbn0axn--mg" +
- "baakc7dvferreroticanonoichinomiyakexn--mgbaam7a8hakusandiegoodye" +
- "arthadselfipassagenshellaspeziaxn--mgbab2bdxn--mgbai9a5eva00bats" +
- "fjordivttasvuotnaharimaniwakuratexascolipicenord-aurdalpha-myqna" +
- "pcloudappspotagerhcloudfunctionsalvadordalibabaikaliszczytnord-o" +
- "dalindasdaburyatiaarpaleomutashinaiinetarnobrzegyptianhlfanhsalz" +
- "burglobalashovhachinohedmarkasumigaurawa-mazowszexboxenapponazur" +
- "e-mobilevje-og-hornnesamegawaxasnesoddenmarkhangelskjervoyagemol" +
- "ogicallyngenglanddnskingjerstadotsuruokamchatkameokameyamashinat" +
- "sukigatakamatsukawaetnagaivuotnagaokakyotambabydgoszczecinemagen" +
- "tositelekommunikationthewifiat-band-campaniamallamaintenanceobih" +
- "irosakikamijimattelefonicarbonia-iglesias-carboniaiglesiascarbon" +
- "iabruzzoologyeongbuk-uralsk12xn--mgbai9azgqp6jewelryxn--mgbayh7g" +
- "paduaxn--mgbb9fbpobanazawaxn--mgbbh1a71exn--mgbc0a9azcgxn--mgbca" +
- "7dzdoxn--mgberp4a5d4a87gxn--mgberp4a5d4arxn--mgbi4ecexposedxn--m" +
- "gbpl2fhskpnxn--mgbqly7c0a67fbcloudnsdojoetsuwanouchikujogaszkola" +
- "hppiacenzakopanerairforcexn--mgbqly7cvafredrikstadtverranzanxn--" +
- "mgbt3dhdxn--mgbtf8flatangerxn--mgbtx2bauhausposts-and-telecommun" +
- "icationsnasadodgeorgeorgiaxn--mgbx4cd0abbottunkosherbrookegawaxn" +
- "--mix082fetsundxn--mix891fgxn--1lqs71dxn--mjndalen-64axn--mk0axi" +
- "nfinitis-with-thebandoomdnsfor-better-thandaxn--mk1bu44cnsaxoxn-" +
- "-mkru45isleofmandalxn--mlatvuopmi-s4axn--mli-tlapyatigorskppspie" +
- "gelxn--mlselv-iuaxn--moreke-juaxn--mori-qsakuragawaxn--mosjen-ey" +
- "atominamiawajikissmarterthanyoustkarasjokomakiyosumycdn77-secure" +
- "chtrainingxn--mot-tlaquilancasterxn--mre-og-romsdal-qqbbcasadela" +
- "monedatsunanjoburglobodoes-itvedestrandiyusuisserveexchangexn--m" +
- "sy-ula0haldenxn--mtta-vrjjat-k7afamilycompanycntoyotaris-a-finan" +
- "cialadvisor-aurdalukowhoswhokksundynv6xn--muost-0qaxn--mxtq1mish" +
- "imatsumaebashimodatexn--ngbc5azdxn--ngbe9e0axn--ngbrxn--45brj9ci" +
- "rcus-2xn--nit225krasnodarxn--nmesjevuemie-tcbajddarchaeologyxn--" +
- "nnx388axn--nodexn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn--nts" +
- "q17gxn--nttery-byaeservecounterstrikexn--nvuotna-hwaxn--nyqy26ax" +
- "n--o1achattanooganorfolkebiblegallocus-1xn--o3cw4halsaitamatsuku" +
- "ris-a-nurservebbshimokitayamaxn--od0algxn--od0aq3bbtarumizusawax" +
- "n--ogbpf8flekkefjordxn--oppegrd-ixaxn--ostery-fyatsukaratsuginam" +
- "ikatagamihoboleslawiecolonialwilliamsburgruexn--osyro-wuaxn--p1a" +
- "cfhvalerxn--p1aiwchoseirouterxn--pbt977coloradoplateaudioxn--pgb" +
- "s0dhlxn--porsgu-sta26fidonnakaiwamizawaxn--pssu33lxn--pssy2uxn--" +
- "q9jyb4columbusheyxn--qcka1pmcdonaldsrlxn--qqqt11missilelxn--qxam" +
- "urskjakdnepropetrovskiptveterinairealtorlandxn--rady-iraxn--rdal" +
- "-poaxn--rde-ularvikrasnoyarskomitamamuraxn--rdy-0nabarixn--renne" +
- "sy-v1axn--rhkkervju-01aflakstadaokagakibichuoxn--rholt-mragowood" +
- "sidexn--rhqv96gxn--rht27zxn--rht3dxn--rht61exn--risa-5narusawaxn" +
- "--risr-iraxn--rland-uuaxn--rlingen-mxaxn--rmskog-byatsushiroxn--" +
- "rny31hammarfeastafricapetownnews-stagingxn--rovu88bbvacationsupd" +
- "atelevisionikiitatebayashijonawatexn--rros-granvindafjordxn--rsk" +
- "og-uuaxn--rst-0narutomobellevuelosangelesjaguarchitecturealtychy" +
- "attorneyagawalbrzycharternopilawalesundxn--rsta-francaiseharaxn-" +
- "-ryken-vuaxn--ryrvik-byawaraxn--s-1faitheguardianxn--s9brj9commu" +
- "nitysfjordyroyrvikinguitarsbschokoladenxn--sandnessjen-ogbizhevs" +
- "kredirectmeldalxn--sandy-yuaxn--seral-lraxn--ses554gxn--sgne-gra" +
- "tangenxn--skierv-utazaskvolloabathsbcomobaraxn--skjervy-v1axn--s" +
- "kjk-soaxn--sknit-yqaxn--sknland-fxaxn--slat-5narviikananporovnox" +
- "n--slt-elabbvieeexn--smla-hraxn--smna-gratis-a-bulls-fanxn--snas" +
- "e-nraxn--sndre-land-0cbremangerxn--snes-poaxn--snsa-roaxn--sr-au" +
- "rdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-varanger-ggbentleyu" +
- "uconnectatamotorsamnangerxn--srfold-byawatahamaxn--srreisa-q1axn" +
- "--srum-grazxn--stfold-9xaxn--stjrdal-s1axn--stjrdalshalsen-sqbep" +
- "publishproxyzgorzeleccolognewportlligatewayuzawaxn--stre-toten-z" +
- "cbsrtroandinosaurlandesmolenskosaigawaxn--t60b56axn--tckweatherc" +
- "hannelxn--tiq49xqyjewishartgalleryxn--tjme-hraxn--tn0agrinet-fre" +
- "aksrvaroyxn--tnsberg-q1axn--tor131oxn--trany-yuaxn--trgstad-r1ax" +
- "n--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atvdonskoshimizumaki" +
- "zunokunimilanoxn--uc0ay4axn--uist22hamurakamigoriginshimonitayan" +
- "agitlaborxn--uisz3gxn--unjrga-rtambovenneslaskerrylogisticsologn" +
- "exn--unup4yxn--uuwu58axn--vads-jraxn--vard-jraxn--vegrshei-c0axn" +
- "--vermgensberater-ctberndnpalermomasvuotnakatombetsupportatarsta" +
- "nikkoebenhavnikolaevennodessaikiraxn--vermgensberatung-pwbeskidy" +
- "nathomedepotenzachpomorskienikonantanangerxn--vestvgy-ixa6oxn--v" +
- "g-yiabcn-north-1xn--vgan-qoaxn--vgsy-qoa0jfkomatsushimashikexn--" +
- "vgu402comparemarkerryhotelscholarshipschooluroyxn--vhquversaille" +
- "solundbeckosakaerodromegalsacechirealminamiuonumasudaxn--vler-qo" +
- "axn--vre-eiker-k8axn--vrggt-xqadxn--vry-yla5gxn--vuq861bestbuysh" +
- "ousesamsclubindalindesnesamsunglogowegroweibolzanordre-landrange" +
- "dalinkasuyakutiaxn--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dxn--wg" +
- "bh1compute-1xn--wgbl6axn--xhq521betainaboxfusejnynysagaeroclubme" +
- "decincinnationwidealerxn--xkc2al3hye2axn--xkc2dl3a5ee0hangoutsys" +
- "temscloudfrontdoorxn--y9a3aquariumisugitokuyamatsumotofukexn--ye" +
- "r-znarvikristiansandcatshirakoenigxn--yfro4i67oxn--ygarden-p1axn" +
- "--ygbi2ammxn--45q11citadeliveryokamikawanehonbetsurutaharaxn--ys" +
- "tre-slidre-ujbieigersundrivelandrobaknoluoktaikicks-assedicaseih" +
- "ichisobetsuitaipeiheijiiyamanobeauxartsandcraftsandvikcoromantov" +
- "alle-d-aostathellexusdecorativeartsanfranciscofreakunemurorangei" +
- "seiyoichiropracticasertairaxn--zbx025dxn--zf0ao64axn--zf0avxn--4" +
- "gbriminingxn--zfr164bielawallonieruchomoscienceandindustryninohe" +
- "kinannestadrudmurtiaxperiaxz"
+const text = "bikedagestangeorgeorgiaxagrocerybnikahokutobishimaizuruhreportar" +
+ "nobrzegyptianaturalhistorymuseumcentereviewskrakoweddinggfarmers" +
+ "einexus-2bilbaogakievenesalangenikiiyamanouchikuhokuryugasakitau" +
+ "rayasudabillustrationikkoebenhavnikolaevennodessagamiharabiomuta" +
+ "shinainfinitintuitattoolsztynsettlersalondonetskarpaczeladzjcbre" +
+ "mangerbirdartcenterprisesakikuchikuseikarugapartmentsaltdalimoli" +
+ "serniabirkenesoddtangenovaravennagasukeverbankaruizawabirthplace" +
+ "vje-og-hornnesalvadordalibabajddarchaeologyusuisserveexchangebja" +
+ "rkoyuufcfanikonantanangerbjerkreimbalsanagochihayaakasakawaharau" +
+ "malopolskanlandds3-us-west-1bjugninohekinannestadrangedalindasda" +
+ "burblockbusternidray-dnsupdaterbloombergbauerninomiyakonojosoyro" +
+ "rosalzburgjovikarumaifarmsteadraydnsamegawabloxcmsamnangerblueda" +
+ "ncebmoattachmentsamsclubindalindesnesamsungladell-ogliastraderbm" +
+ "sandvikcoromantovalle-d-aostatic-accessanfranciscofreakunemurora" +
+ "ngeiseiyoichiropracticasinordre-landrivelandrobaknoluoktabuseekl" +
+ "ogesurancertmgretachikawakkanaibetsubamericanfamilydscloudcontro" +
+ "lledekafjordrudunsangoppdalivornobmweirbnpparibaselburglassassin" +
+ "ationalheritagematsubarakawagoebnrwfarsundupontariobonnirasakinu" +
+ "yamashinashikitchenishiazainvestmentsanjournalismailillesandefjo" +
+ "rdurbanamexhibitionishigobookingliwicebootsannanishiharaboschaef" +
+ "flerdalomzaporizhzhegurinzais-a-bulls-fanishiizunazukis-a-candid" +
+ "atebostikasaokamiminersannohelplfinancialorenskoglobalashovhachi" +
+ "nohedmarkashibatakasakiyokawarabostonakijinsekikogentinglobodoes" +
+ "-itvedestrandurhamburglogowhalingloppenzaogashimadachicagoboatsa" +
+ "nokashiharabotanicalgardenishikatakayamatta-varjjataxihuanishika" +
+ "tsuragithubusercontentgoryuzawabotanicgardenishikawazukamitondab" +
+ "ayashiogamagoriziabotanybouncemerckmsdnipropetrovskjakdnepropetr" +
+ "ovskiervaapsteiermarkashiwarabounty-fullensakerrypropertiesantab" +
+ "arbaraboutiquebecngmbhartiffanybozentsujiiebradescorporationishi" +
+ "merabrandywinevalleybrasiliabresciabrindisibenikebristoloslocalh" +
+ "istoryggeelvinckashiwazakiyosatokashikiyosemitebritishcolumbialo" +
+ "wiezachpomorskienishinomiyashironobroadcastlefrakkestadvrcambrid" +
+ "gestonextdirectjeldsundvrdnsantacruzsantafedextraspacekitagataji" +
+ "rittogoldpoint2thisamitsukebroadwaybroke-itjmaxxxboxenapponazure" +
+ "-mobilebrokerbronnoysundwgminakamichiharabrothermesaverdeatnurem" +
+ "bergmodellingmxfinitybrowsersafetymarketsanukis-a-catererbrumund" +
+ "dalotenkawabrunelasticbeanstalkasukabedzin-the-bandaikawachinaga" +
+ "noharamcoalaskanittedallasalleasinglest-mon-blogueurovisionthewi" +
+ "fiat-band-campaniabrusselsaotomemergencyberlevagangaviikanonjis-" +
+ "a-celticsfanishinoomotegobruxellesapodlasiellakasamatsudovre-eik" +
+ "erbryanskjervoyagebrynewhampshirebungoonordlandyndns-at-workingg" +
+ "roupalacebuskerudinewjerseybuzenishinoshimattelefonicarbonia-igl" +
+ "esias-carboniaiglesiascarboniabuzzlgrimstadyndns-blogdnsapporobw" +
+ "hoswhokksundyndns-freebox-ostrowiecateringebuilderschmidtre-gaul" +
+ "dalottebzhitomirumalselvendrellottokonamegatakasugais-a-chefashi" +
+ "onishiokoppegardyndns-homednsardegnamsskoganeis-a-conservativefs" +
+ "nillfjordyndns-ipaleocondoshichinohealth-carereformitakeharaconf" +
+ "erenceconstructionconsuladoesntexistanbullensvanguardyndns-wikin" +
+ "dlegokasells-for-lessaudaconsultanthropologyconsultingvolluxuryc" +
+ "ontactoyookanmakiwakunigamifunecontemporaryarteducationalchikugo" +
+ "doharuovatoyosatoyakokonoecontractorskenconventureshinodesashibe" +
+ "tsuikinderoycookingchannelblagdenesnaaseralingenkainanaejrietisa" +
+ "latinabenonichernihivanovodkagoshimalvikasumigaurawa-mazowszexjc" +
+ "palermomahachijorpelandyndns-mailouvreisenishitosashimizunaminam" +
+ "iashigaracoolkuszkoladbrokesauheradyndns-workisboringrpamperedch" +
+ "efastlylbaltimore-og-romsdalwaysdatabaseballangenoamishirasatoch" +
+ "igiessenebakkeshibechambagriculturennebudejjudygarlandigitalavan" +
+ "genavigationavuotnaklodzkodairamusementarumizusawabruzzoologyeon" +
+ "gbuk12cooperaunitemasekatsushikabeeldengeluidyndns1copenhagencyc" +
+ "lopedichernivtsiciliacorsicagliarightathomeftpanamacorvettenriku" +
+ "zentakataitogliattiresavannahgacosenzaganquannakadomaritimekeepi" +
+ "ngatlantaijis-a-financialadvisor-aurdaluzerncosidnsfor-better-th" +
+ "anawawildlifedjeffersoncostumedio-campidano-mediocampidanomedioc" +
+ "ouchpotatofriesaves-the-whalessandria-trani-barletta-andriatrani" +
+ "barlettaandriacouncilvivano-frankivskatsuyamasfjordencouponsavon" +
+ "aplesaxocoursesbschokoladencq-acranbrookuwanalyticscholarshipsch" +
+ "oolcreditcardynnschulezajskydivingruecreditunioncremonashorokana" +
+ "iecrewilliamhillcricketrzyncrimeastcoastaldefencecrotonewyorkshi" +
+ "recipesaro-urbino-pesarourbinopesaromasvuotnaharimamurogawacrown" +
+ "providercrsvpanasonichernovtsykkylvenetogakushimotoganewportllig" +
+ "atjxn--0trq7p7nnishiwakis-a-cpadoval-daostavalleycruiseschwarzgw" +
+ "angjuegoshikiminokamoenairtraffichiryukyuragifuchungbukasuyaltak" +
+ "ashimaseratis-a-cubicle-slavellinowtvalleaostatoilowiczest-le-pa" +
+ "trondheimmobilienissandnessjoenissayokoshibahikariwanumatakazaki" +
+ "s-a-democratkmaxxn--11b4c3dyndns-office-on-the-webcampobassociat" +
+ "esardiniacryptonomichigangwoncuisinellahppiacenzakopanerairguard" +
+ "ynv6culturalcentertainmentoyotaris-a-geekgalaxycuneocupcakecxn--" +
+ "1ctwolominamatakkokaminokawanishiaizubangecymrussiacyonabarulsan" +
+ "doycyouthdfcbankaufenfiguerestaurantoyotomiyazakis-a-greenfilate" +
+ "liafilminamiawajikis-a-guruslivinghistoryfinalfinancefineartscie" +
+ "ntistoragefinlandfinnoyfirebaseapparliamentoyotsukaidownloadfire" +
+ "nzefirestonefirmdaleirfjordfishingolffanscjohnsonfitjarqhachioji" +
+ "yahikobeatscotlandfitnessettlementoyourafjalerflesbergushikamifu" +
+ "ranoshiroomuraflickragerotikakamigaharaflightscrapper-siteflirfl" +
+ "ogintogurafloraflorencefloridavvesiidazaifudaigojomedizinhistori" +
+ "schescrappingxn--1lqs71dfloristanohatakahamaniwakuratexascolipic" +
+ "enord-aurdalipayflorogerserveftparmaflowerservegame-serversaille" +
+ "servehalflifestyleflynnhubambleclercartoonartdecoldwarmiamibugat" +
+ "tipschlesisches3-us-west-2fndfoodnetworkshoppingfor-ourfor-somee" +
+ "thnologyfor-theaterforexrothruherecreationforgotdnservehttparoch" +
+ "erkasyno-dservehumourforli-cesena-forlicesenaforlikescandynamic-" +
+ "dnserveirchitachinakagawatchandclockaszubyforsaleirvikazoforsand" +
+ "asuoloftoystre-slidrettozawafortmissoulair-traffic-controlleyfor" +
+ "tworthachirogatakahatakaishimogosenforuminamibosogndalfosneserve" +
+ "minecraftozsdev-myqnapcloudcontrolappspotagerfotaruis-a-hard-wor" +
+ "kerfoxfordedyn-ip24freeboxoservemp3utilitiesquarezzoologicalvink" +
+ "lein-addrammenuernbergdyniabogadocscbnl-o-g-i-nativeamericananti" +
+ "ques3-ap-northeast-1kappchizippodhaleangaviikadenadexeterepbodyn" +
+ "athomebuilt3l3p0rtargets-itargiving12000emmafanconagawakayamadri" +
+ "dvagsoyericssonyoursidealerimo-i-ranaamesjevuemielno-ip6freemaso" +
+ "nryfreiburgfreightcminamidaitomangotsukisosakitagawafreseniuscou" +
+ "ntryestateofdelawaredstonefribourgfriuli-v-giuliafriuli-ve-giuli" +
+ "afriuli-vegiuliafriuli-venezia-giuliafriuli-veneziagiuliafriuli-" +
+ "vgiuliafriuliv-giuliafriulive-giuliafriulivegiuliafriulivenezia-" +
+ "giuliafriuliveneziagiuliafriulivgiuliafrlfroganservep2parservepi" +
+ "cservequakefrognfrolandfrom-akrehamnfrom-alfrom-arfrom-azwinbana" +
+ "narepublicasadelamonedatsunanjoburgjerstadotsuruokakegawasnesodd" +
+ "enmarkhangelskiptveterinairealtychyattorneyagawalmartatamotors3-" +
+ "ap-south-1from-capebretonamiastapleservesarcasmatartanddesignfro" +
+ "m-collectionfrom-ctrani-andria-barletta-trani-andriafrom-dchitos" +
+ "etogitsuldalucaniafrom-defenseljordfrom-flanderservicesettsurgeo" +
+ "nshalloffamemorialfrom-gausdalfrom-higashiagatsumagoizumizakiraf" +
+ "rom-iafrom-idfrom-ilfrom-incheonfrom-ksevastopolefrom-kyowariasa" +
+ "hikawafrom-lajollamericanexpressexyfrom-mannortonsbergfrom-mdfro" +
+ "m-megurokunohealthcareersevenassisicilyfrom-midoris-a-hunterfrom" +
+ "-mnfrom-mochizukirkenesewindmillfrom-msfranziskanerdpolicefrom-m" +
+ "tnfrom-nchloefrom-ndfrom-nefrom-nhktraniandriabarlettatraniandri" +
+ "afrom-njelenia-gorafrom-nminamiechizenfrom-nvalled-aostavangerfr" +
+ "om-nyfrom-ohkurafrom-oketohmansionshangrilanciafrom-orfrom-pader" +
+ "bornfrom-pratohnoshoooshikamaishimodatextileitungsenfrom-ris-a-k" +
+ "nightpointtokaizukameokameyamatotakadafrom-schoenbrunnfrom-sdfro" +
+ "m-tnfrom-txn--1qqw23afrom-utazuerichardlillehammerfeste-ipartis-" +
+ "a-landscaperfrom-vaksdalfrom-vtranoyfrom-wafrom-wielunnerfrom-wv" +
+ "alledaostavernfrom-wyfrosinonefrostalowa-wolawafroyahababyglandf" +
+ "stcgroupartnersharis-a-lawyerfujiiderafujikawaguchikonefujiminoh" +
+ "tawaramotoineppubolognakanotoddenfujinomiyadafujiokayamanxn--2m4" +
+ "a15efujisatoshonairportland-4-salernoboribetsucksharpartshawaiij" +
+ "imarugame-hostrodawarafujisawafujishiroishidakabiratoridegreefuj" +
+ "itsurugashimamateramodalenfujixeroxn--30rr7yfujiyoshidafukayabea" +
+ "rdubaiduckdnshellaspeziafukuchiyamadafukudominichocolatelevision" +
+ "issedaluccapitalonewmexicoffeedbackplaneapplinzis-a-designerimar" +
+ "umorimachidafukuis-a-liberalfukumitsubishigakirovogradoyfukuokaz" +
+ "akiryuohadanotaireshimojis-a-libertarianfukuroishikarikaturindal" +
+ "fukusakisarazurewebsiteshikagamiishibukawafukuyamagatakaharustka" +
+ "noyakagefunabashiriuchinadafunagatakahashimamakishiwadafunahashi" +
+ "kamiamakusatsumasendaisennangonohejis-a-linux-useranishiaritabas" +
+ "hijonawatefundaciofuoiskujukuriyamaoris-a-llamarylandfuosskoczow" +
+ "indowshimokawafurnituredumbrellanbibaidarfurubiraquarelleborkang" +
+ "erfurudonostiaarpartyfurukawairtelecityeatshimokitayamafusodegau" +
+ "rafussaikisofukushimapasadenamsosnowiechofunatorientexpressarluc" +
+ "ernefutabayamaguchinomigawafutboldlygoingnowhere-for-moregontrai" +
+ "lroadfuttsurugimperiafuturehostingfuturemailingfvgfyis-a-musicia" +
+ "nfylkesbiblackfridayfyresdalhangglidinghangoutsystemscloudfrontd" +
+ "oorhannanmokuizumodenakasatsunais-a-painteractivegarsheis-a-pats" +
+ "fanhannotteroyhanyuzenhapmirhareidsbergenharstadharvestcelebrati" +
+ "onhasamarnardalhasaminami-alpssells-itransportransurlhashbanghas" +
+ "udahasura-appassenger-associationhasvikazunohatogayahoohatoyamaz" +
+ "akitahiroshimarriottrapaniimimatakatoris-a-personaltrainerhatsuk" +
+ "aichikaiseis-a-photographerokuappaviancargodaddynaliascoli-picen" +
+ "oipirangamvikddielddanuorrissagaeroclubmedecincinnationwidealsta" +
+ "haugesunderseaportsinfolldalabamagasakishimabarackmazehattfjelld" +
+ "alhayashimamotobungotakadapliernewhollandhazuminobusellsyourhome" +
+ "goodshimotsumahboehringerikehelsinkitakamiizumisanofidelitysvard" +
+ "ollshinichinanhembygdsforbundhemneshinjournalistjohnhemsedalhepf" +
+ "orgeherokussldheroyhgtvallee-aosteroyhigashichichibunkyonanaoshi" +
+ "mageandsoundandvisionhigashihiroshimanehigashiizumozakitakatakam" +
+ "oriokalmykiahigashikagawahigashikagurasoedahigashikawakitaaikita" +
+ "kyushuaiahigashikurumeiwamarshallstatebankfhappouhigashimatsushi" +
+ "maritimodernhigashimatsuyamakitaakitadaitoigawahigashimurayamamo" +
+ "torcycleshinjukumanohigashinarusembokukitamidsundhigashinehigash" +
+ "iomihachimanchesterhigashiosakasayamanakakogawahigashishirakawam" +
+ "atakanabeautydalhigashisumiyoshikawaminamiaikitamotosumitakagild" +
+ "eskaliszhigashitsunowruzhgorodeohigashiurausukitanakagusukumodum" +
+ "inamiiselectravelchannelhigashiyamatokoriyamanashifteditchyourip" +
+ "fizerhigashiyodogawahigashiyoshinogaris-a-playerhiraizumisatohob" +
+ "by-sitehirakatashinagawahiranais-a-republicancerresearchaeologic" +
+ "aliforniahirarahiratsukagawahirayaitakanezawahistorichouseshinka" +
+ "migotoyohashimotoshimahitachiomiyaginankokubunjis-a-rockstaracho" +
+ "wicehitachiotagooglecodespotravelersinsurancehitraeumtgeradeloit" +
+ "tevadsoccertificationhjartdalhjelmelandholeckobierzyceholidayhom" +
+ "eipgfoggiahomelinkhakassiahomelinuxn--32vp30haebaruminamifuranoh" +
+ "omeofficehomesecuritymaceratakaokaluganskodjejuifminamiizukamiok" +
+ "amikitayamatsuris-a-socialistmein-vigorgehomesecuritypccwinnersh" +
+ "inshinotsurgeryhomesenseminehomeunixn--3bst00minamimakis-a-soxfa" +
+ "nhondahoneywellbeingzonehongopocznosegawahonjyoitakarazukamakura" +
+ "zakitashiobarahornindalhorseoulminamiminowahortendofinternet-dns" +
+ "hinshirohospitalhoteleshintokushimahotmailhoyangerhoylandetroits" +
+ "kolelhumanitieshintomikasaharahurdalhurumajis-a-studentalhyllest" +
+ "adhyogoris-a-teacherkassymantechnologyhyugawarahyundaiwafunehzch" +
+ "onanbuildingripescaravantaajlchoyodobashichikashukujitawarajlljm" +
+ "pharmacienshirakofuefukihaboromskoguchikuzenjnjeonnamerikawauejo" +
+ "yokaichibahcavuotnagaranzannefrankfurtrentino-alto-adigejpmorgan" +
+ "jpnjprshiranukamogawajuniperjurkoshunantokigawakosugekotohiradom" +
+ "ainsureggiocalabriakotourakouhokutamakis-an-artisteinkjerusalemb" +
+ "roiderykounosupplieshiraokanagawakouyamashikokuchuokouzushimasoy" +
+ "kozagawakozakis-an-engineeringkpnkppspdnshiratakahagivestbytomar" +
+ "idagawassamukawataricohdatingkrasnodarkredirectmeldalkristiansan" +
+ "dcatshishikuis-an-entertainerkristiansundkrodsheradkrokstadelval" +
+ "daostarostwodzislawioshisognekryminamisanrikubetsupportrentino-a" +
+ "ltoadigekumatorinokumejimasudakumenanyokkaichirurgiens-dentistes" +
+ "-en-francekunisakis-bykunitachiarailwaykunitomigusukumamotoyamas" +
+ "sa-carrara-massacarraramassabusinessebyklegallocus-1kunneppulawy" +
+ "kunstsammlungkunstunddesignkuokgrouphdkureggioemiliaromagnakayam" +
+ "atsumaebashikshacknetrentino-s-tirollagrigentomologyeonggiehtavu" +
+ "oatnagaivuotnagaokakyotambabia-goracleaningkurgankurobelaudibleb" +
+ "timnetzkurogimilanokuroisoftwarendalenugkuromatsunais-certifiedo" +
+ "gawarabikomaezakirunorthwesternmutualkurotakikawasakis-foundatio" +
+ "nkushirogawakusupplykutchanelkutnokuzumakis-gonekvafjordkvalsund" +
+ "kvamfamberkeleykvanangenkvinesdalkvinnheradkviteseidskogkvitsoyk" +
+ "wpspiegelkzmissilevangermisugitokorozawamitourismolancastermitoy" +
+ "oakemiuramiyazumiyotamanomjondalenmlbfanmonmouthagebostadmonster" +
+ "monticellombardiamondshisuifuelveruminamitanemontrealestatefarme" +
+ "quipmentrentino-stirolmonza-brianzaporizhzhiamonza-e-della-brian" +
+ "zapposhitaramamonzabrianzaptokuyamatsusakahoginowaniihamatamakaw" +
+ "ajimarburgmonzaebrianzaramonzaedellabrianzamoparachutingmordovia" +
+ "jessheiminamiuonumatsumotofukemoriyamatsushigemoriyoshimilitarym" +
+ "ormoneymoroyamatsuuramortgagemoscowitdkmpspbarcelonagasakijobser" +
+ "verisignieznord-odalaziobihirosakikamijimassnasaarlandd-dnshome-" +
+ "webservercellikes-piedmontblancomeeres3-ap-southeast-1moseushist" +
+ "orymosjoenmoskeneshizukuishimofusaitamatsukuris-into-gamessinats" +
+ "ukigatakasagotembaixadamosshizuokananporovigotpantheonsitemosvik" +
+ "nx-serveronakatsugawamoteginozawaonsenmoviemovistargardmtpchrist" +
+ "masakikugawatchesarufutsunomiyawakasaikaitakoelniyodogawamtranby" +
+ "muenstermugithubcloudusercontentrentino-sud-tirolmuikamisatokama" +
+ "chippubetsubetsugarumukochikushinonsenergymulhouservebeermunakat" +
+ "anemuncieszynmuosattemuphiladelphiaareadmyblogsitemurmanskolobrz" +
+ "egersundmurotorcraftrentino-sudtirolmusashimurayamatsuzakis-leet" +
+ "rdmusashinoharamuseetrentino-sued-tirolmuseumverenigingmutsuzawa" +
+ "mutuellewismillermy-vigorlicemy-wanggouvicenzamyactivedirectorym" +
+ "yasustor-elvdalmycdn77-securechtrainingmydissentrentino-suedtiro" +
+ "lmydrobofagemydshoujis-lostre-toteneis-a-techietis-a-therapistoi" +
+ "amyeffectrentinoa-adigemyfirewallonieruchomoscienceandindustrynm" +
+ "yfritzmyftpaccesshowamyfusionmyhome-serverrankoshigayamelhusgard" +
+ "enmykolaivaolbia-tempio-olbiatempioolbialystokkepnogiftshowtimet" +
+ "eorapphilatelymymediapchromedicaltanissettairamyokohamamatsudamy" +
+ "pepsongdalenviknakanojohanamakinoharamypetshriramlidlugolekagami" +
+ "nogatagajobojis-not-certifieducatorahimeshimakanegasakinkobayash" +
+ "ikaoirminamiogunicomcastresistancemyphotoshibahccavuotnagareyama" +
+ "lborkdalvdalcesienarashinomypsxn--3e0b707emysecuritycamerakermys" +
+ "hopblocksigdalmyvnchryslerpictetrentinoaadigepicturesimple-urlpi" +
+ "emontepilotsirdalpimientaketomisatolgapinkomakiyosunndalpioneerp" +
+ "ippuphoenixn--3oq18vl8pn36apiszpittsburghofauskedsmokorsetagayas" +
+ "ells-for-ulvikautokeinopiwatepizzapkomatsushimashikizunokunimiho" +
+ "boleslawiechristiansburgriwataraidyndns-picsarpsborgroks-thisaya" +
+ "manobeokakudamatsueplanetariuminamiyamashirokawanabellevuelosang" +
+ "elesjaguarchitecturealtorlandplantationplantslingplatforminanopl" +
+ "aystationplazaplchungnamdalseidfjordyndns-remotewdyndns-serverda" +
+ "luroyplombardynamisches-dnslupskomforbarclaycards3-website-ap-no" +
+ "rtheast-1plumbingopmnpodzonepohlpoivronpokerpokrovskommunalforbu" +
+ "ndpolitiendapolkowicepoltavalle-aostathellexusdecorativeartsnoas" +
+ "aitomobellunorddalpomorzeszowithgoogleapisa-hockeynutsiracusakat" +
+ "akinouepordenonepornporsangerporsanguidelmenhorstalbansokanazawa" +
+ "porsgrunnanpoznanpraxis-a-bookkeeperugiaprdpreservationpresidiop" +
+ "rgmrprimeloyalistockholmestrandprincipeprivatizehealthinsurancep" +
+ "rochowiceproductionsokndalprofbsbxn--1lqs03nprogressivegasiaproj" +
+ "ectrentinoalto-adigepromombetsurfbx-ostrowwlkpmgulenpropertyprot" +
+ "ectionprotonetrentinoaltoadigeprudentialpruszkowithyoutubentleyp" +
+ "rzeworskogptplusterpvtrentinos-tirolpwchurchaseljeepostfoldnavyp" +
+ "zqldqponqslgbtrentinostirolquicksytesolarssonqvcirclegnicafedera" +
+ "tionstufftoread-booksnesolundbeckommunestuttgartrentoyokawasusak" +
+ "is-slickharkovalleeaosteigensusonosuzakaneyamazoesuzukaniepcesuz" +
+ "ukis-uberleetrentino-a-adigesvalbardunloppacificircustomersveios" +
+ "velvikomvuxn--3ds443gsvizzeraswedenswidnicarrierswiebodzindianap" +
+ "olis-a-bloggerswiftcoversicherungswinoujscienceandhistoryswisshi" +
+ "kis-very-badaddjamisonsynology-dsolutionsolognetuscanytushuissie" +
+ "r-justicetuvalle-daostaticsootuxfamilyvenneslaskerrylogisticsopo" +
+ "trentinosud-tirolvestfoldvestnesor-odalvestre-slidreamhostersor-" +
+ "varangervestre-totennishiawakuravestvagoyvevelstadvibo-valentiav" +
+ "ibovalentiavideovillaskoyabearalvahkihokumakogengerdalpha-myqnap" +
+ "cloudapplebesbydgoszczecinemakeupowiathletajimabariakembuchikuma" +
+ "gayagawakuyabukicks-assedicitadeliveryvinnicartiervinnytsiavipsi" +
+ "naapphonefossilkomaganevirginiavirtualvirtueeldomeindianmarketin" +
+ "gvirtuelvisakegawavistaprinternationalfirearmsorfoldviterboltroa" +
+ "ndinosaurepaircraftrevisohughesomavivoldavlaanderenvladikavkazim" +
+ "ierz-dolnyvladimirvlogoiphotographysiovolkswagentsorreisahayakaw" +
+ "akamiichikawamisatotalvologdanskongsvingervolvolkenkundenvolyngd" +
+ "alvossevangenvotevotingvotoyonakagyokutoursortlandworldworse-tha" +
+ "ndawowiwatsukiyonowritesthisblogsytewroclawloclawekoninjavald-ao" +
+ "starnbergwtciticatholicheltenham-radio-opencraftranagatorodoywtf" +
+ "bxosciencecentersciencehistorywuozuwwwmflabsorumincommbanklabudh" +
+ "abikinokawabarthagakhanamigawawzmiuwajimaxn--4gq48lf9jetztrentin" +
+ "o-aadigexn--4it168dxn--4it797konsulatrobeepilepsydneyxn--4pvxsou" +
+ "thcarolinazawaxn--54b7fta0ccivilizationxn--55qw42gxn--55qx5dxn--" +
+ "5js045dxn--5rtp49civilwarmanagementmpalmspringsakerxn--5rtq34kon" +
+ "yvelolxn--5su34j936bgsgxn--5tzm5gxn--6btw5axn--6frz82gxn--6orx2r" +
+ "xn--6qq986b3xlxn--7t0a264claimsasayamaxn--80adxhksouthwestfalenx" +
+ "n--80ao21axn--80aqecdr1axn--80asehdbarefootballooningjesdalillyo" +
+ "mbondiscountysnes3-website-ap-southeast-2xn--80aswgxn--80audneda" +
+ "lnxn--8ltr62kooris-an-actorxn--8pvr4uxn--8y0a063axn--90a3academy" +
+ "-firewall-gatewayxn--90aishobaraomoriguchiharahkkeravjuedischesa" +
+ "peakebayernrtrogstadxn--90azhytomyrxn--9dbhblg6dietcimdbargainst" +
+ "itutelemarkaratsuginamikatagamiharuconnectatarantottoribestadisc" +
+ "overyomitanobirastronomy-gatewayokosukanzakiwienaturalsciencesna" +
+ "turelles3-ap-southeast-2xn--9dbq2axn--9et52uxn--9krt00axn--andy-" +
+ "iraxn--aroport-byanaizuxn--asky-iraxn--aurskog-hland-jnbarreauct" +
+ "ionayorovnobninskarelianceu-1xn--avery-yuasakuhokkaidontexistein" +
+ "geekopervikhmelnitskiyamashikexn--b-5gaxn--b4w605ferdxn--bck1b9a" +
+ "5dre4clickatowicexn--bdddj-mrabdxn--bearalvhki-y4axn--berlevg-jx" +
+ "axn--bhcavuotna-s4axn--bhccavuotna-k7axn--bidr-5nachikatsuuraxn-" +
+ "-bievt-0qa2xn--bjarky-fyandexn--3pxu8konskowolayangroupharmacysh" +
+ "iraois-an-accountantshinyoshitomiokamitsuexn--bjddar-ptamayufuet" +
+ "tertdasnetzxn--blt-elabourxn--bmlo-graingerxn--bod-2naroyxn--brn" +
+ "ny-wuaccident-investigation-aptibleaseating-organicbcn-north-1xn" +
+ "--brnnysund-m8accident-prevention-webhopenairbusantiquest-a-la-m" +
+ "aisondre-landebudapest-a-la-masionionjukudoyamagazineat-urlxn--b" +
+ "rum-voagatromsakakinokiaxn--btsfjord-9zaxn--c1avgxn--c2br7gxn--c" +
+ "3s14mintelligencexn--cck2b3barrel-of-knowledgemologicallyngenvir" +
+ "onmentalconservationflfanfshostrolekamisunagawaugustowadaegubs3-" +
+ "ca-central-1xn--cg4bkis-very-evillagexn--ciqpnxn--clchc0ea0b2g2a" +
+ "9gcdn77-sslattumisakis-into-carshioyanagawaxn--comunicaes-v6a2ox" +
+ "n--correios-e-telecomunicaes-ghc29axn--czr694barrell-of-knowledg" +
+ "eologyonagoyaukraanghkeymachineustarhubalestrandabergamoareke164" +
+ "xn--czrs0tromsojaworznoxn--czru2dxn--czrw28bashkiriaurskog-holan" +
+ "droverhalla-speziaeroportalaheadjudaicaaarborteaches-yogasawarac" +
+ "ingroks-theatree12xn--d1acj3basilicataniaustevollarvikarasjokara" +
+ "suyamarylhurstjordalshalsenaturbruksgymnaturhistorisches3-eu-cen" +
+ "tral-1xn--d1alfaromeoxn--d1atrusteexn--d5qv7z876clinichernigover" +
+ "nmentjometlifeinsurancexn--davvenjrga-y4axn--djrs72d6uyxn--djty4" +
+ "koryokamikawanehonbetsurutaharaxn--dnna-grajewolterskluwerxn--dr" +
+ "bak-wuaxn--dyry-iraxn--e1a4cliniquenoharaxn--eckvdtc9dxn--efvn9s" +
+ "owaxn--efvy88haibarakitahatakamatsukawaxn--ehqz56nxn--elqq16hair" +
+ "-surveillancexn--estv75gxn--eveni-0qa01gaxn--f6qx53axn--fct429ko" +
+ "saigawaxn--fhbeiarnxn--finny-yuaxn--fiq228c5hspjelkavikomonoxn--" +
+ "fiq64basketballfinanzgoraustinnatuurwetenschappenaumburgjemnes3-" +
+ "eu-west-1xn--fiqs8spreadbettingxn--fiqz9spydebergxn--fjord-lraxn" +
+ "--fjq720axn--fl-ziaxn--flor-jraxn--flw351exn--fpcrj9c3dxn--frde-" +
+ "grandrapidsrlxn--frna-woaraisaijotrvarggatritonxn--frya-hraxn--f" +
+ "zc2c9e2clintonoshoesaseboknowsitallutskypexn--fzys8d69uvgmailxn-" +
+ "-g2xx48clothingrondarxn--gckr3f0fermobilyxn--gecrj9cloudnsdojoet" +
+ "suwanouchikujogaszczytnore-og-uvdaluxembourgrongaxn--ggaviika-8y" +
+ "a47hakatanotogawaxn--gildeskl-g0axn--givuotna-8yaotsurreyxn--gjv" +
+ "ik-wuaxn--gk3at1exn--gls-elacaixaxn--gmq050is-very-goodhandsonxn" +
+ "--gmqw5axn--h-2failxn--h1aeghakodatexn--h2brj9cnsaskatchewanxn--" +
+ "hbmer-xqaxn--hcesuolo-7ya35batodayonaguniversityoriikariyakumold" +
+ "eltaiwanairlinedre-eikerxn--hery-iraxn--hgebostad-g3axn--hmmrfea" +
+ "sta-s4acctrysiljan-mayenxn--hnefoss-q1axn--hobl-iraxn--holtlen-h" +
+ "xaxn--hpmir-xqaxn--hxt814exn--hyanger-q1axn--hylandet-54axn--i1b" +
+ "6b1a6a2exn--imr513nxn--indery-fyasakaiminatoyonezawaxn--io0a7is-" +
+ "very-nicexn--j1aeferraraxn--j1amhakonexn--j6w193gxn--jlq61u9w7ba" +
+ "tsfjordishakotankarlsoyoshiokarasjohkamikoaniikappugliaustraliai" +
+ "sondriodejaneirochesterhcloudfunctions3-external-1xn--jlster-bya" +
+ "sugis-very-sweetpepperxn--jrpeland-54axn--jvr189misasaguris-into" +
+ "-cartoonshirahamatonbetsurnadalxn--k7yn95exn--karmy-yuaxn--kbrq7" +
+ "oxn--kcrx77d1x4axn--kfjord-iuaxn--klbu-woaxn--klt787dxn--kltp7dx" +
+ "n--kltx9axn--klty5xn--42c2d9axn--koluokta-7ya57hakubadajozorahol" +
+ "taleniwaizumiotsukumiyamazonawsabaerobaticketshimonosekikawaxn--" +
+ "kprw13dxn--kpry57dxn--kpu716ferrarivnexn--kput3is-with-thebandoo" +
+ "mdnsiskinkyotobetsumidatlantichoseiroumuenchenisshingugexn--krag" +
+ "er-gyasuokanraxn--kranghke-b0axn--krdsherad-m8axn--krehamn-dxaxn" +
+ "--krjohka-hwab49jevnakershuscultureggio-emilia-romagnakatombetsu" +
+ "my-routerxn--ksnes-uuaxn--kvfjord-nxaxn--kvitsy-fyatomitamamurax" +
+ "n--kvnangen-k0axn--l-1fairwindsrtrentinosudtirolxn--l1accenturek" +
+ "lamborghiniizaxn--laheadju-7yatsukanumazuryxn--langevg-jxaxn--lc" +
+ "vr32dxn--ldingen-q1axn--leagaviika-52bauhausposts-and-telecommun" +
+ "icationsncfdivtasvuodnakaiwamizawaustrheimatunduhrennesoyokotebi" +
+ "nagisochildrensgardenaustdalavagiskebinorfolkebibleikangerxn--le" +
+ "sund-huaxn--lgbbat1ad8jewelryxn--lgrd-poacoachampionshiphoptobam" +
+ "agentositelekommunikationlinebraskaunjargallupinbbcaseihichisobe" +
+ "tsuitainairforceoceanographics3-website-eu-west-1xn--lhppi-xqaxn" +
+ "--linds-pramericanartulangevagrarboretumbriamallamaintenancechir" +
+ "ealminnesotaketakatsukis-into-animelbournexn--lns-qlansrvareserv" +
+ "eblogspotrentinosued-tirolxn--loabt-0qaxn--lrdal-sraxn--lrenskog" +
+ "-54axn--lt-liacntoyonoxn--lten-granexn--lury-iraxn--mely-iraxn--" +
+ "merker-kuaxn--mgb2ddestordalxn--mgb9awbferreroticanonoichinomiya" +
+ "kexn--mgba3a3ejtunesomnaritakurashikis-savedunetbankharkivguccip" +
+ "rianiigataishinomakimobetsuliguriaxn--mgba3a4f16axn--mgba3a4fran" +
+ "amizuholdingsmileksvikosakaerodromegalsacebetsukubankhmelnytskyi" +
+ "vanylvenicexn--mgba7c0bbn0axn--mgbaakc7dvfetsundynvpnxn--mgbaam7" +
+ "a8hakuis-a-nascarfanxn--mgbab2bdxn--mgbai9a5eva00bbtateshinanoma" +
+ "chintaifun-dnsaliaskimitsubatamicable-modembetsukuibigawauthorda" +
+ "landroiddnskingjerdrumckinseyokozebizenakaniikawatanaguraetnagah" +
+ "amaroygardendoftheinternetflixilovecollegefantasyleaguernseyboml" +
+ "oans3-ap-northeast-2xn--mgbai9azgqp6jewishartgalleryxn--mgbayh7g" +
+ "padualstackspace-to-rentalstomakomaibaraxn--mgbb9fbpobanazawaxn-" +
+ "-mgbbh1a71exn--mgbc0a9azcgxn--mgbca7dzdoxn--mgberp4a5d4a87gxn--m" +
+ "gberp4a5d4arxn--mgbi4ecexposedxn--mgbpl2fhskleppiagetmyiphilipsy" +
+ "nology-diskstationxn--mgbqly7c0a67fbcolonialwilliamsburgrossetou" +
+ "chijiwadellogliastradingroundhandlingroznyxn--mgbqly7cvafredriks" +
+ "tadtvstoreitrentinosuedtirolxn--mgbt3dhdxn--mgbtf8flatangerxn--m" +
+ "gbtx2bbvacationswatch-and-clockerxn--mgbx4cd0abbottunkongsbergxn" +
+ "--mix082fgunmarcheaparisor-fronxn--mix891fhvalerxn--mjndalen-64a" +
+ "xn--mk0axindustriesteambulancexn--mk1bu44coloradoplateaudioxn--m" +
+ "kru45isleofmandalxn--mlatvuopmi-s4axn--mli-tlanxesstorfjordxn--m" +
+ "lselv-iuaxn--moreke-juaxn--mori-qsakuragawaxn--mosjen-eyatsushir" +
+ "oxn--mot-tlapyxn--mre-og-romsdal-qqbeppublishproxyzgorzeleccolog" +
+ "newspaperxn--msy-ula0hakusandiegoodyearthadselfipassagenshimonit" +
+ "ayanagitlaborxn--mtta-vrjjat-k7afamilycompanycolumbusheyxn--muos" +
+ "t-0qaxn--mxtq1misawaxn--ngbc5azdxn--ngbe9e0axn--ngbrxn--45brj9ci" +
+ "vilaviationxn--nit225koseis-an-actresshiojirishirifujiedaxn--nme" +
+ "sjevuemie-tcbalatinord-frontierxn--nnx388axn--nodexn--nqv7fs00em" +
+ "axn--nry-yla5gxn--ntso0iqx3axn--ntsq17gxn--nttery-byaeservecount" +
+ "erstrikexn--nvuotna-hwaxn--nyqy26axn--o1achattanooganordreisa-ge" +
+ "ekosherbrookegawaxn--o3cw4haldenxn--od0algxn--od0aq3bernuorockar" +
+ "tuzyukibmdivttasvuotnakamagayachts3-website-sa-east-1xn--ogbpf8f" +
+ "lekkefjordxn--oppegrd-ixaxn--ostery-fyawaraxn--osyro-wuaxn--p1ac" +
+ "fidonnakamuratajimicrolightinguovdageaidnunzenxn--p1aissmarterth" +
+ "anyouxn--pbt977communitysfjordyndns-weberlincolnxn--pgbs0dhlxn--" +
+ "porsgu-sta26fieldyroyrvikinguitarschweizparaglidingujolsterxn--p" +
+ "ssu33lxn--pssy2uxn--q9jyb4comobaraxn--qcka1pmcdonaldstpetersburg" +
+ "xn--qqqt11misconfusedxn--qxamuneuestreamsterdamnserverbaniaxn--r" +
+ "ady-iraxn--rdal-poaxn--rde-ulaquilancashirehabmerxn--rdy-0nabari" +
+ "wchoshibuyachiyodavvenjargaulardalukowiiheyaizuwakamatsubushikus" +
+ "akadogawaxn--rennesy-v1axn--rhkkervju-01aflakstadaokagakibichuox" +
+ "n--rholt-mragowoodsidexn--rhqv96gxn--rht27zxn--rht3dxn--rht61exn" +
+ "--risa-5narusawaxn--risr-iraxn--rland-uuaxn--rlingen-mxaxn--rmsk" +
+ "og-byawatahamaxn--rny31halsaintlouis-a-anarchistoireggio-calabri" +
+ "axn--rovu88beskidyn-vpncasertaipeiheijiinetnedalimanowarudautomo" +
+ "tivecodyn-o-saurlandes3-fips-us-gov-west-1xn--rros-granvindafjor" +
+ "dxn--rskog-uuaxn--rst-0narutokyotangovturystykannamihamadaxn--rs" +
+ "ta-francaiseharaxn--ryken-vuaxn--ryrvik-byaxn--s-1faitheguardian" +
+ "xn--s9brj9comparemarkerryhotelsassaris-a-doctorayxn--sandnessjen" +
+ "-ogbizxn--sandy-yuaxn--seral-lraxn--ses554gxn--sgne-gratangenxn-" +
+ "-skierv-utazaskvolloabathsbcompute-1xn--skjervy-v1axn--skjk-soax" +
+ "n--sknit-yqaxn--sknland-fxaxn--slat-5narviikamishihoronobeauxart" +
+ "sandcraftstudioxn--slt-elabbvieeexn--smla-hraxn--smna-gratis-a-b" +
+ "ruinsfanxn--snase-nraxn--sndre-land-0cbstudyndns-at-homedepotenz" +
+ "amamicrosoftbankomorotsukaminoyamaxunusualpersonxn--snes-poaxn--" +
+ "snsa-roaxn--sr-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-va" +
+ "ranger-ggbestbuyshouses3-website-us-east-1xn--srfold-byaxn--srre" +
+ "isa-q1axn--srum-grazxn--stfold-9xaxn--stjrdal-s1axn--stjrdalshal" +
+ "sen-sqbetainaboxfusejnynysadodgeometre-experts-comptables3-websi" +
+ "te-us-west-1xn--stre-toten-zcbieigersundiyukuhashimoichinosekiga" +
+ "harautoscanadaejeonbukaratehimeji234xn--t60b56axn--tckweathercha" +
+ "nnelxn--tiq49xqyjfkhersonxn--tjme-hraxn--tn0agrinet-freakstuff-4" +
+ "-salexn--tnsberg-q1axn--tor131oxn--trany-yuaxn--trgstad-r1axn--t" +
+ "rna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atvaroyxn--uc0ay4axn--ui" +
+ "st22hammarfeastafricapetownnews-stagingxn--uisz3gxn--unjrga-rtao" +
+ "baokinawashirosatochiokinoshimalatvuopmiasakuchinotsuchiurakawal" +
+ "brzycharternopilawalesundxn--unup4yxn--uuwu58axn--vads-jraxn--va" +
+ "rd-jraxn--vegrshei-c0axn--vermgensberater-ctbielawalterxn--vermg" +
+ "ensberatung-pwbiellaakesvuemielecceu-2xn--vestvgy-ixa6oxn--vg-yi" +
+ "abcgxn--vgan-qoaxn--vgsy-qoa0jgoraxn--vgu402computerhistoryofsci" +
+ "ence-fictionxn--vhquvbarclays3-website-ap-southeast-1xn--vler-qo" +
+ "axn--vre-eiker-k8axn--vrggt-xqadxn--vry-yla5gxn--vuq861bieszczad" +
+ "ygeyachimataikikonaioirasebastopologyeongnamegawakeisenbahnhlfan" +
+ "hs3-website-us-west-2xn--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dx" +
+ "n--wgbh1comsecuritytacticsatxn--1ck2e1balsfjordgcahcesuolodingen" +
+ "aval-d-aosta-valleyolasitemrxn--wgbl6axn--xhq521bievatmallorcada" +
+ "quesakuraiitatebayashiibaghdadultateyamaveroykenglanddnss3-sa-ea" +
+ "st-1xn--xkc2al3hye2axn--xkc2dl3a5ee0hamurakamigoriginshimosuwalk" +
+ "is-a-nurservebbshimotsukexn--y9a3aquariumishimatsunoxn--yer-znar" +
+ "vikoshimizumakis-an-anarchistoricalsocietyxn--yfro4i67oxn--ygard" +
+ "en-p1axn--ygbi2ammxn--45q11civilisationxn--ystre-slidre-ujbifuka" +
+ "gawarszawashingtondclkarmoyurihonjoyentatsunoceanographiquevents" +
+ "akyotanabeneventoeidsvollimitednpagefrontappagespeedmobilizerodd" +
+ "avocatanzarowegroweibolzanordkappgafanpachigasakidsmynasushiobar" +
+ "agusarts3-us-east-2xn--zbx025dxn--zf0ao64axn--zf0avxn--4gbrimini" +
+ "ngxn--zfr164bihorologyusuharavoues3-us-gov-west-1xperiaxz"
// nodes is the list of nodes. Each node is represented as a uint32, which
// encodes the node's children, wildcard bit and node type (as an index into
@@ -482,8141 +483,8127 @@ const text = "biellaakesvuemieleccebieszczadygeyachimatainaircraftraeumtgerade"
// [15 bits] text index
// [ 6 bits] text length
var nodes = [...]uint32{
- 0x29e943,
- 0x364444,
- 0x28af46,
- 0x371983,
- 0x371986,
- 0x394246,
- 0x3a4103,
- 0x202f04,
- 0x24f607,
- 0x28ab88,
- 0x1a00882,
- 0x309dc7,
- 0x3533c9,
- 0x2fb3ca,
- 0x2fb3cb,
- 0x22fe43,
- 0x28cac6,
- 0x2352c5,
- 0x1e00702,
- 0x211ac4,
- 0x2c7a83,
- 0x226bc5,
- 0x2200d42,
- 0x2a0f43,
- 0x2707e44,
- 0x368485,
- 0x2a00c42,
- 0x3797ce,
- 0x24a483,
- 0x38b406,
- 0x2e04642,
- 0x2a5907,
- 0x237d46,
- 0x3200a42,
- 0x2ae043,
- 0x2ae044,
- 0x280f86,
- 0x36f448,
- 0x283a46,
- 0x386144,
- 0x3601002,
- 0x326a09,
- 0x363a07,
- 0x3351c6,
- 0x355049,
- 0x293988,
- 0x367104,
- 0x3a6606,
- 0x20e306,
- 0x3a02e02,
- 0x241d0f,
- 0x33174e,
- 0x212484,
- 0x2bb945,
- 0x202e05,
- 0x2ea589,
- 0x23e889,
- 0x325747,
- 0x221646,
- 0x26b083,
- 0x3e056c2,
- 0x346fc3,
- 0x207a4a,
- 0x211e83,
- 0x250585,
- 0x2040c2,
- 0x2830c9,
- 0x4204802,
- 0x209084,
- 0x29e486,
- 0x284b45,
- 0x34c904,
- 0x4a74a04,
- 0x204803,
- 0x234304,
- 0x4e01842,
- 0x364184,
- 0x52e41c4,
- 0x22410a,
- 0x56009c2,
- 0x334307,
- 0x38e008,
- 0x6201182,
- 0x322847,
- 0x2b7344,
- 0x2b7347,
- 0x383d05,
- 0x370a47,
- 0x325506,
- 0x332a44,
- 0x340c85,
- 0x28df47,
- 0x72046c2,
- 0x349183,
- 0x218782,
- 0x366703,
- 0x76108c2,
- 0x2798c5,
- 0x7a02d42,
- 0x368ac4,
- 0x277785,
- 0x2123c7,
- 0x2ddc0e,
- 0x330a44,
- 0x244744,
- 0x20ca03,
- 0x326ec9,
- 0x30528b,
- 0x30e148,
- 0x31cd88,
- 0x320888,
- 0x20a588,
- 0x354e8a,
- 0x370947,
- 0x217906,
- 0x7e9c3c2,
- 0x377d83,
- 0x380c43,
- 0x38bc84,
- 0x250ac3,
- 0x3a4143,
- 0x1713b02,
- 0x8203182,
- 0x2484c5,
- 0x30c046,
- 0x2c9bc4,
- 0x396e07,
- 0x22eec6,
- 0x280304,
- 0x3a7dc7,
- 0x203183,
- 0x86bdb82,
- 0x8a4f882,
- 0x8e13702,
- 0x213706,
+ 0x32f983,
+ 0x28a344,
+ 0x30e286,
+ 0x371b43,
+ 0x371b46,
+ 0x394646,
+ 0x3a5003,
+ 0x367844,
+ 0x260687,
+ 0x30dec8,
+ 0x1a04cc2,
+ 0x316e47,
+ 0x355d89,
+ 0x32228a,
+ 0x32228b,
+ 0x22eec3,
+ 0x28fac6,
+ 0x2327c5,
+ 0x1e04e02,
+ 0x217c04,
+ 0x2a90c3,
+ 0x3ac705,
+ 0x2203942,
+ 0x329e03,
+ 0x26957c4,
+ 0x368e05,
+ 0x2a10182,
+ 0x3787ce,
+ 0x253343,
+ 0x3a03c6,
+ 0x2e00142,
+ 0x30e407,
+ 0x23ae46,
+ 0x3200c42,
+ 0x22a343,
+ 0x254b04,
+ 0x325a86,
+ 0x35c208,
+ 0x28a706,
+ 0x21ad04,
+ 0x3601442,
+ 0x332309,
+ 0x207587,
+ 0x256286,
+ 0x339309,
+ 0x29d788,
+ 0x328d44,
+ 0x364906,
+ 0x36b606,
+ 0x3a02942,
+ 0x27144f,
+ 0x20f94e,
+ 0x2131c4,
+ 0x2c6085,
+ 0x367745,
+ 0x385989,
+ 0x241a89,
+ 0x368047,
+ 0x23c9c6,
+ 0x273a43,
+ 0x3e02342,
+ 0x2df283,
+ 0x205aca,
+ 0x221d83,
+ 0x303145,
+ 0x289c02,
+ 0x289c09,
+ 0x4200f82,
+ 0x203d84,
+ 0x2250c6,
+ 0x2eb205,
+ 0x34cbc4,
+ 0x4a04c04,
+ 0x205283,
+ 0x231ac4,
+ 0x4e02e02,
+ 0x209f04,
+ 0x52f4e04,
+ 0x24ae0a,
+ 0x5601342,
+ 0x303907,
+ 0x26b8c8,
+ 0x6202f82,
+ 0x31cf07,
+ 0x2c2e04,
+ 0x2c2e07,
+ 0x373d85,
+ 0x357a47,
+ 0x367e06,
+ 0x2e8384,
+ 0x39c0c5,
+ 0x294847,
+ 0x7206cc2,
+ 0x34f703,
+ 0x200582,
+ 0x200583,
+ 0x76125c2,
+ 0x221ec5,
+ 0x7a02302,
+ 0x27bd84,
+ 0x2810c5,
+ 0x213107,
+ 0x269f0e,
+ 0x224bc4,
+ 0x206a84,
+ 0x211503,
+ 0x2ceac9,
+ 0x2ed94b,
+ 0x3a6548,
+ 0x3148c8,
+ 0x318dc8,
+ 0x237908,
+ 0x33914a,
+ 0x357947,
+ 0x318146,
+ 0x7ea4fc2,
+ 0x35bc03,
+ 0x366c43,
+ 0x371144,
+ 0x3a5043,
+ 0x324cc3,
+ 0x171f542,
+ 0x8203682,
+ 0x252185,
+ 0x2a11c6,
+ 0x2d6d44,
+ 0x2f6e07,
+ 0x382986,
+ 0x319dc4,
+ 0x398247,
+ 0x20f7c3,
+ 0x86c8902,
+ 0x8b124c2,
+ 0x8e1c502,
+ 0x21c506,
0x9200002,
- 0x37f645,
- 0x315043,
- 0x205244,
- 0x2dbe44,
- 0x2dbe45,
- 0x207043,
- 0x9723ac3,
- 0x9a093c2,
- 0x2873c5,
- 0x2873cb,
- 0x22d086,
- 0x20cbcb,
- 0x26ff44,
- 0x20d189,
- 0x20ed44,
- 0x9e0fd82,
- 0x210c83,
- 0x211183,
- 0x1611302,
- 0x23c343,
- 0x21130a,
- 0xa211d42,
- 0x211d45,
- 0x28ea8a,
- 0x2cd704,
- 0x212d43,
- 0x213384,
- 0x213cc3,
- 0x213cc4,
- 0x213cc7,
- 0x214245,
- 0x218dc5,
- 0x219586,
- 0x21a0c6,
- 0x21aa43,
- 0x21dc48,
- 0x258e83,
- 0xa615802,
- 0x21f008,
- 0x21580b,
- 0x222d08,
- 0x223586,
- 0x224547,
- 0x229748,
- 0xb279a82,
- 0xb693f02,
- 0x20b608,
- 0x2ad0c7,
- 0x23b405,
- 0x23b408,
- 0x281888,
- 0x2ada03,
- 0x22eac4,
- 0x38bcc2,
- 0xba2f482,
- 0xbe051c2,
- 0xc62f802,
- 0x22f803,
- 0xca02ec2,
- 0x202ec3,
- 0x2fe704,
- 0x21abc3,
- 0x3670c4,
- 0x24edcb,
+ 0x359b85,
+ 0x320a83,
+ 0x200004,
+ 0x2ee344,
+ 0x2ee345,
+ 0x203e43,
+ 0x9768883,
+ 0x9a07f42,
+ 0x28e245,
+ 0x28e24b,
+ 0x2d0686,
+ 0x20a0cb,
+ 0x225b04,
+ 0x20a7c9,
+ 0x20be84,
+ 0x9e0c0c2,
+ 0x20cf83,
+ 0x210843,
+ 0x1600802,
+ 0x260903,
+ 0x2109ca,
+ 0xa211cc2,
+ 0x217e85,
+ 0x2983ca,
+ 0x2dc184,
+ 0x369f03,
+ 0x315044,
+ 0x213643,
+ 0x213644,
+ 0x213647,
+ 0x213985,
+ 0x213e05,
+ 0x2150c6,
+ 0x2167c6,
+ 0x2182c3,
+ 0x21c188,
+ 0x221c43,
+ 0xa601082,
+ 0x21cac8,
+ 0x21ff0b,
+ 0x2216c8,
+ 0x2221c6,
+ 0x222a47,
+ 0x226488,
+ 0xb2413c2,
+ 0xb6c2fc2,
+ 0x326388,
+ 0x257ec7,
+ 0x22bac5,
+ 0x22bac8,
+ 0x2bf708,
+ 0x3871c3,
+ 0x22a784,
+ 0x371182,
+ 0xba2af82,
+ 0xbe5ba02,
+ 0xc62c1c2,
+ 0x22c1c3,
+ 0xca0e542,
+ 0x367803,
+ 0x2f8e04,
+ 0x218443,
+ 0x328d04,
+ 0x25fe4b,
+ 0x21fe43,
+ 0x2e4d06,
+ 0x226284,
+ 0x2a5a8e,
+ 0x361c05,
+ 0x3a04c8,
+ 0x282247,
+ 0x28224a,
+ 0x229d03,
+ 0x2b3447,
+ 0x2edb05,
+ 0x22ea44,
+ 0x272486,
+ 0x272487,
+ 0x32b704,
+ 0x304ac7,
+ 0x26a244,
+ 0x35bc84,
+ 0x35bc86,
+ 0x386904,
+ 0x20e546,
+ 0x223c83,
+ 0x22b888,
+ 0x30c3c8,
+ 0x24e2c3,
+ 0x2608c3,
+ 0x204f04,
+ 0x395943,
+ 0xce0d882,
+ 0xd2db442,
+ 0x20c043,
+ 0x201806,
+ 0x35c383,
+ 0x28bfc4,
+ 0xd6081c2,
+ 0x2081c3,
+ 0x358243,
+ 0x219942,
+ 0xda02ac2,
+ 0x2c55c6,
+ 0x2334c7,
+ 0x2f7a85,
+ 0x37da44,
+ 0x3723c5,
+ 0x367007,
+ 0x274205,
+ 0x2d3e89,
+ 0x2e0586,
+ 0x2e5488,
+ 0x2f7986,
+ 0xde0db42,
+ 0x362f48,
+ 0x2f8bc6,
+ 0x20db45,
+ 0x304687,
+ 0x30c2c4,
+ 0x30c2c5,
+ 0x28a8c4,
+ 0x28a8c8,
+ 0xe20a182,
+ 0xe60c502,
+ 0x313646,
+ 0x2c28c8,
+ 0x31f145,
+ 0x332c06,
+ 0x3356c8,
+ 0x33e1c8,
+ 0xea0fd45,
+ 0xee0c504,
+ 0x2958c7,
+ 0xf20bbc2,
+ 0xf61c402,
+ 0x1060d1c2,
+ 0x35aa45,
+ 0x2a8505,
+ 0x282606,
+ 0x3698c7,
+ 0x376ec7,
+ 0x10ed0783,
+ 0x2e3447,
+ 0x30dc88,
+ 0x3823c9,
+ 0x378987,
+ 0x390287,
+ 0x3a5b08,
+ 0x3aa206,
+ 0x22e546,
+ 0x22f18c,
+ 0x230b0a,
+ 0x230fc7,
+ 0x23268b,
+ 0x233307,
+ 0x23330e,
+ 0x236244,
+ 0x23a184,
+ 0x23b547,
+ 0x264f47,
+ 0x240d46,
+ 0x240d47,
+ 0x241207,
+ 0x18a20802,
+ 0x2420c6,
+ 0x2420ca,
+ 0x24294b,
+ 0x243407,
+ 0x244ec5,
+ 0x245203,
+ 0x246c46,
+ 0x246c47,
+ 0x241c43,
+ 0x18e38702,
+ 0x24b74a,
+ 0x19356fc2,
+ 0x196acdc2,
+ 0x19a4cec2,
+ 0x19e26982,
+ 0x24da85,
+ 0x24e0c4,
+ 0x1a604d02,
+ 0x209f85,
+ 0x294ac3,
+ 0x20bf85,
+ 0x237804,
+ 0x20a684,
+ 0x2ba5c6,
+ 0x26a546,
+ 0x28e443,
+ 0x3b1484,
+ 0x209383,
+ 0x1aa03b02,
+ 0x263544,
+ 0x263546,
+ 0x295e45,
+ 0x27fdc6,
+ 0x304788,
+ 0x20cb44,
+ 0x2a8e88,
+ 0x343fc5,
+ 0x24a108,
+ 0x2b1cc6,
+ 0x2bddc7,
+ 0x26cdc4,
+ 0x26cdc6,
+ 0x25e303,
+ 0x382e43,
+ 0x2c9388,
+ 0x318bc4,
+ 0x238d47,
+ 0x220246,
+ 0x2dad89,
+ 0x315108,
+ 0x319f08,
+ 0x349184,
+ 0x39b9c3,
+ 0x23e342,
+ 0x1ba34682,
+ 0x1be16102,
+ 0x3b2783,
+ 0x1c204a42,
+ 0x2607c4,
+ 0x390a46,
+ 0x39a6c5,
+ 0x2a4383,
+ 0x232004,
+ 0x2b6f47,
+ 0x26aa43,
+ 0x250d08,
+ 0x20e8c5,
+ 0x370083,
+ 0x281045,
+ 0x281184,
+ 0x2fb8c6,
+ 0x210384,
+ 0x211a46,
+ 0x213046,
+ 0x263004,
+ 0x21fd83,
+ 0x2225c3,
+ 0x1c604e42,
+ 0x377905,
+ 0x222e03,
+ 0x1ca1c3c2,
+ 0x22f143,
+ 0x210085,
+ 0x231b83,
+ 0x231b89,
+ 0x1ce07d02,
+ 0x1d601142,
+ 0x28d9c5,
+ 0x21a746,
+ 0x2d6906,
+ 0x2b94c8,
+ 0x2b94cb,
+ 0x20538b,
+ 0x2f7c85,
+ 0x2e1045,
+ 0x2c9fc9,
+ 0x1600742,
+ 0x2631c8,
+ 0x206044,
+ 0x1de001c2,
+ 0x25fa83,
+ 0x1e665106,
+ 0x20f088,
+ 0x1ea04782,
+ 0x233ec8,
+ 0x1ee01742,
+ 0x225c4a,
+ 0x1f2d0e43,
+ 0x3b1e86,
+ 0x206988,
+ 0x207d48,
+ 0x39a9c6,
+ 0x36d5c7,
+ 0x271647,
+ 0x220b0a,
+ 0x2dc204,
+ 0x3423c4,
+ 0x355589,
+ 0x1fb8fc85,
+ 0x20fb46,
+ 0x208203,
+ 0x251944,
+ 0x201e44,
+ 0x201e47,
+ 0x22cec7,
+ 0x237044,
+ 0x220a45,
+ 0x2826c8,
+ 0x350707,
+ 0x3619c7,
+ 0x1fe041c2,
+ 0x226004,
+ 0x298cc8,
+ 0x381004,
+ 0x24f0c4,
+ 0x24fa45,
+ 0x24fb87,
+ 0x215809,
+ 0x2505c4,
+ 0x2510c9,
+ 0x251308,
+ 0x2516c4,
+ 0x2516c7,
+ 0x20251c43,
+ 0x252487,
+ 0x16101c2,
+ 0x179d442,
+ 0x253386,
+ 0x2539c7,
+ 0x253e84,
+ 0x255607,
+ 0x256907,
+ 0x257483,
+ 0x2abc02,
+ 0x229c02,
+ 0x258743,
+ 0x258744,
+ 0x25874b,
+ 0x3149c8,
+ 0x25f184,
+ 0x2594c5,
+ 0x25ba87,
+ 0x25d8c5,
+ 0x2c4dca,
+ 0x25f0c3,
+ 0x2060da42,
+ 0x22b484,
+ 0x264d09,
+ 0x268983,
+ 0x268a47,
+ 0x28ee89,
+ 0x37b5c8,
+ 0x2d8483,
+ 0x27ff47,
+ 0x280689,
+ 0x2316c3,
+ 0x288284,
+ 0x289389,
+ 0x28c6c6,
+ 0x28dc83,
+ 0x2023c2,
+ 0x24ca43,
+ 0x36ab47,
+ 0x2bfa85,
+ 0x35ba06,
+ 0x256bc4,
+ 0x2d1d45,
+ 0x205a83,
+ 0x218506,
+ 0x20a9c2,
+ 0x391084,
+ 0x22ad02,
+ 0x22ad03,
+ 0x20a00182,
+ 0x29b083,
+ 0x216c44,
+ 0x216c47,
+ 0x200306,
+ 0x201e02,
+ 0x20e01dc2,
+ 0x21e184,
+ 0x2123b882,
+ 0x21600502,
+ 0x2dfcc4,
+ 0x2dfcc5,
+ 0x2b9cc5,
+ 0x262746,
+ 0x21a0ca82,
+ 0x20ca85,
+ 0x210d85,
+ 0x225883,
+ 0x215c06,
+ 0x216dc5,
+ 0x21c482,
+ 0x33de05,
+ 0x21c484,
+ 0x2230c3,
+ 0x223303,
+ 0x21e097c2,
+ 0x294a47,
+ 0x221144,
+ 0x221149,
+ 0x251844,
+ 0x228903,
+ 0x341cc9,
+ 0x3777c8,
+ 0x2a8384,
+ 0x2a8386,
+ 0x210503,
+ 0x259b43,
+ 0x332ec3,
+ 0x222ebc02,
+ 0x30eb82,
+ 0x22600642,
+ 0x3238c8,
+ 0x35c588,
+ 0x394d86,
+ 0x24ed45,
+ 0x2b32c5,
+ 0x200647,
+ 0x228fc5,
+ 0x2630c2,
+ 0x22a9a502,
+ 0x1614502,
+ 0x38fe08,
+ 0x362e85,
+ 0x351d04,
+ 0x2f18c5,
+ 0x3836c7,
+ 0x24f5c4,
+ 0x246f82,
+ 0x22e01182,
+ 0x336f04,
+ 0x2173c7,
+ 0x28e9c7,
+ 0x357a04,
+ 0x298383,
+ 0x24e204,
+ 0x24e208,
+ 0x22e886,
+ 0x27230a,
+ 0x2156c4,
+ 0x298708,
+ 0x259784,
+ 0x222b46,
+ 0x29a4c4,
+ 0x35ad46,
+ 0x221409,
+ 0x25b287,
+ 0x234483,
+ 0x23274842,
+ 0x274843,
+ 0x20c2c2,
+ 0x23651b02,
+ 0x2f0b06,
+ 0x364148,
+ 0x2a9d87,
+ 0x395d09,
+ 0x297f09,
+ 0x2ab245,
+ 0x2ad3c9,
+ 0x2ae045,
+ 0x2ae189,
+ 0x2af5c5,
+ 0x2b0208,
+ 0x27f284,
+ 0x23a8d6c7,
+ 0x294403,
+ 0x2b0407,
+ 0x390646,
+ 0x2b08c7,
+ 0x2a6d45,
+ 0x2a7f83,
+ 0x23e00dc2,
+ 0x392604,
+ 0x2423b8c2,
+ 0x264403,
+ 0x24618d82,
+ 0x307646,
+ 0x26b845,
+ 0x2b2bc7,
+ 0x37f183,
+ 0x324c44,
+ 0x2138c3,
+ 0x2386c3,
+ 0x24a0a3c2,
+ 0x25201a02,
+ 0x394744,
+ 0x2abbc3,
+ 0x38c985,
+ 0x226d85,
+ 0x25602282,
+ 0x25e00bc2,
+ 0x280286,
+ 0x318d04,
+ 0x2491c4,
+ 0x2491ca,
+ 0x26601d42,
+ 0x37324a,
+ 0x204148,
+ 0x26a964c4,
+ 0x201d43,
+ 0x25ff43,
+ 0x318f09,
+ 0x2a8909,
+ 0x2b7046,
+ 0x26e04303,
+ 0x328145,
+ 0x30664d,
+ 0x204306,
+ 0x21268b,
+ 0x27203482,
+ 0x295048,
+ 0x27e1c282,
+ 0x282051c2,
+ 0x37aa85,
+ 0x28600b02,
+ 0x2a3147,
+ 0x212b87,
+ 0x201503,
+ 0x22f848,
+ 0x28a02f02,
+ 0x202f04,
+ 0x217043,
+ 0x38d045,
+ 0x386fc3,
+ 0x2eb106,
+ 0x30bdc4,
+ 0x204ec3,
+ 0x234f83,
+ 0x28e07042,
+ 0x2f7c04,
+ 0x30ed45,
+ 0x35a587,
+ 0x27dbc3,
+ 0x2b36c3,
+ 0x2b3ec3,
+ 0x1621ac2,
+ 0x2b3f83,
+ 0x2b4b03,
+ 0x2920ae42,
+ 0x2cee84,
+ 0x26a746,
+ 0x33c7c3,
+ 0x2b4f83,
+ 0x296b5e02,
+ 0x2b5e08,
+ 0x2b60c4,
+ 0x2470c6,
+ 0x2b6547,
+ 0x24e3c6,
+ 0x295304,
+ 0x37200082,
+ 0x39050b,
+ 0x2ffbce,
+ 0x21bb0f,
+ 0x29da43,
+ 0x37a4ca02,
+ 0x166b142,
+ 0x37e02442,
+ 0x29c243,
+ 0x2472c3,
+ 0x233106,
+ 0x22ff46,
+ 0x212307,
+ 0x31aa84,
+ 0x3821a882,
+ 0x3860ec02,
+ 0x2d4ac5,
+ 0x2e88c7,
+ 0x37e046,
+ 0x38a82882,
+ 0x2f5b04,
+ 0x2b9783,
+ 0x38e01b02,
+ 0x39352883,
+ 0x2ba984,
+ 0x2c06c9,
+ 0x16c6fc2,
+ 0x39642682,
+ 0x351245,
+ 0x39ac7242,
+ 0x39e02682,
+ 0x341687,
+ 0x2364c9,
+ 0x35600b,
+ 0x271405,
+ 0x2c7c89,
+ 0x276a46,
+ 0x2d06c7,
+ 0x3a2092c4,
+ 0x32ef49,
+ 0x374b07,
+ 0x2255c7,
+ 0x234003,
+ 0x37b386,
+ 0x30f887,
+ 0x265383,
+ 0x27c5c6,
+ 0x3aa022c2,
+ 0x3ae31e02,
+ 0x220443,
+ 0x324845,
+ 0x257747,
+ 0x21fac6,
+ 0x2bfa05,
+ 0x230044,
+ 0x2efa45,
+ 0x2f8284,
+ 0x3b205e82,
+ 0x349f07,
+ 0x2e1c44,
+ 0x23e244,
+ 0x33328d,
+ 0x257249,
+ 0x381588,
+ 0x25ac04,
+ 0x314e85,
+ 0x3b2607,
+ 0x205e84,
+ 0x382a47,
+ 0x20c705,
+ 0x3b6aa384,
+ 0x36dec5,
+ 0x267644,
+ 0x24f706,
+ 0x3696c5,
+ 0x3ba24742,
+ 0x369fc4,
+ 0x369fc5,
+ 0x3716c6,
+ 0x2bfb45,
+ 0x25c104,
+ 0x3120c3,
+ 0x204986,
+ 0x22c085,
+ 0x22c785,
+ 0x3697c4,
0x215743,
- 0x2d2f86,
- 0x223f84,
- 0x29b84e,
- 0x360445,
- 0x38b508,
- 0x24bd87,
- 0x24bd8a,
- 0x222a83,
- 0x222a87,
- 0x305445,
- 0x231c84,
- 0x24d886,
- 0x24d887,
- 0x2beb44,
- 0x2f6607,
- 0x377e04,
- 0x3afe84,
- 0x3afe86,
- 0x267544,
- 0x208606,
- 0x210ac3,
- 0x217188,
- 0x21cfc8,
- 0x244703,
- 0x23c303,
- 0x395544,
- 0x39a003,
- 0xce00482,
- 0xd304e82,
- 0x2004c3,
- 0x2072c6,
- 0x369e83,
- 0x263584,
- 0xd616942,
- 0x244c43,
- 0x216943,
- 0x21b182,
- 0xda008c2,
- 0x2b9fc6,
- 0x235fc7,
- 0x2e9345,
- 0x367a44,
- 0x27e045,
- 0x2026c7,
- 0x26a205,
- 0x2c6889,
- 0x2cf2c6,
- 0x2d48c8,
- 0x2e9246,
- 0xde06c02,
- 0x33b648,
- 0x2fe4c6,
- 0x3b1a45,
- 0x3ae4c7,
- 0x301084,
- 0x301085,
- 0x283c04,
- 0x283c08,
- 0xe20cc82,
- 0xe6131c2,
- 0x329cc6,
- 0x318208,
- 0x339345,
- 0x33a3c6,
- 0x33c648,
- 0x35b948,
- 0xeac8945,
- 0xefa8204,
- 0x3aae87,
- 0xf20e802,
- 0xf61dec2,
- 0x10a16582,
- 0x357b85,
- 0x2a3e05,
- 0x2de246,
- 0x319b87,
- 0x399547,
- 0x1122d183,
- 0x29a147,
- 0x2d4488,
- 0x38fec9,
- 0x379987,
- 0x3a5187,
- 0x22fe88,
- 0x230686,
- 0x231786,
- 0x2323cc,
- 0x232f4a,
- 0x233787,
- 0x23518b,
- 0x235e07,
- 0x235e0e,
- 0x236a84,
- 0x2374c4,
- 0x239b07,
- 0x25b087,
- 0x23d9c6,
- 0x23d9c7,
- 0x23e107,
- 0x14600bc2,
- 0x23ec86,
- 0x23ec8a,
- 0x23ef0b,
- 0x240007,
- 0x2407c5,
- 0x240b03,
- 0x240fc6,
- 0x240fc7,
- 0x230a83,
- 0x14a0b382,
- 0x24198a,
- 0x14f54502,
- 0x152a6c02,
- 0x15642b82,
- 0x15a37e42,
- 0x243a85,
- 0x244504,
- 0x16200682,
- 0x364205,
- 0x226b83,
- 0x317c85,
- 0x20a484,
- 0x20ec44,
- 0x291786,
- 0x378106,
- 0x2875c3,
- 0x261f84,
- 0x281e43,
- 0x16600f82,
- 0x200f84,
- 0x3ab406,
- 0x200f85,
- 0x258c06,
- 0x3ae5c8,
- 0x263804,
- 0x2c7848,
- 0x2e0c45,
- 0x22e708,
- 0x32c306,
- 0x2b49c7,
- 0x239504,
- 0x239506,
- 0x307003,
- 0x384083,
- 0x2be608,
- 0x30c584,
- 0x2a0887,
- 0x30a106,
- 0x30a109,
- 0x252448,
- 0x27efc8,
- 0x280444,
- 0x378983,
- 0x22aa02,
- 0x16ab1d82,
- 0x16e2cf42,
- 0x3a1603,
- 0x17219c42,
- 0x24f744,
- 0x3400c6,
- 0x371305,
- 0x23fe83,
- 0x232884,
- 0x300447,
- 0x367783,
- 0x2379c8,
- 0x3af5c5,
- 0x36fc43,
- 0x277705,
+ 0x21574c,
+ 0x3be8d002,
+ 0x3c2045c2,
+ 0x3c605d82,
+ 0x205d83,
+ 0x205d84,
+ 0x3ca032c2,
+ 0x2f9648,
+ 0x35bac5,
+ 0x33f884,
+ 0x230e46,
+ 0x3ce073c2,
+ 0x3d20fc42,
+ 0x3d600c02,
+ 0x321e85,
+ 0x262ec6,
+ 0x20b484,
+ 0x325fc6,
+ 0x3036c6,
+ 0x202983,
+ 0x3db1164a,
+ 0x264785,
+ 0x28b4c3,
+ 0x223886,
+ 0x305e09,
+ 0x223887,
+ 0x293308,
+ 0x29d649,
+ 0x248108,
+ 0x229a46,
+ 0x208843,
+ 0x3de017c2,
+ 0x384b03,
+ 0x384b09,
+ 0x368548,
+ 0x3e2513c2,
+ 0x3e601f02,
+ 0x22d603,
+ 0x2e0405,
+ 0x258f44,
+ 0x35e849,
+ 0x226784,
+ 0x26f288,
+ 0x205c03,
+ 0x2602c4,
+ 0x2784c3,
+ 0x21a788,
+ 0x3331c7,
+ 0x3ea0f302,
+ 0x2432c2,
+ 0x257d85,
+ 0x3960c9,
+ 0x20fbc3,
+ 0x281ac4,
+ 0x328104,
+ 0x219e03,
+ 0x28380a,
+ 0x3ef73102,
+ 0x3f2c0202,
+ 0x2c8883,
+ 0x374fc3,
+ 0x1649202,
+ 0x262a43,
+ 0x3f60bcc2,
+ 0x3fa05f02,
+ 0x3fe22044,
+ 0x222046,
+ 0x33e8c6,
0x277844,
- 0x208306,
- 0x20c804,
- 0x20cf06,
- 0x212306,
- 0x2512c4,
- 0x215683,
- 0x21a883,
- 0x1767e402,
- 0x360fc5,
- 0x215dc3,
- 0x17a00442,
- 0x232383,
- 0x331e85,
- 0x2343c3,
- 0x2343c9,
- 0x17e08042,
- 0x18614b42,
- 0x286b45,
- 0x21ba46,
- 0x29f387,
- 0x2c9786,
- 0x2b83c8,
- 0x2b83cb,
- 0x20730b,
- 0x22aac5,
- 0x2d02c5,
- 0x2bf489,
- 0x1600ec2,
- 0x251488,
- 0x20ce04,
- 0x18e00202,
- 0x24ea03,
- 0x1965b246,
- 0x330e88,
- 0x19a031c2,
- 0x228108,
- 0x19e00d82,
- 0x27008a,
- 0x20f043,
- 0x31d346,
- 0x330448,
- 0x378cc8,
- 0x32f8c6,
- 0x36dd07,
- 0x241f07,
- 0x20de8a,
- 0x2cd784,
- 0x33f184,
- 0x352f49,
- 0x38f8c5,
- 0x2f31c6,
- 0x2138c3,
- 0x247984,
- 0x212104,
- 0x3412c7,
- 0x21e687,
- 0x2d7e84,
- 0x20ddc5,
- 0x2de308,
- 0x35d607,
- 0x360207,
- 0x1a206ac2,
- 0x369684,
- 0x28f388,
- 0x384544,
- 0x2455c4,
- 0x2459c5,
- 0x245b07,
- 0x206ac9,
- 0x246684,
- 0x246e89,
- 0x247348,
- 0x247704,
- 0x247707,
- 0x1a647f83,
- 0x248a47,
- 0x16475c2,
- 0x17a4a82,
- 0x249a06,
- 0x24a4c7,
- 0x24a904,
- 0x24c9c7,
- 0x24e4c7,
- 0x252083,
- 0x23aa82,
- 0x201682,
- 0x252b03,
- 0x252b04,
- 0x252b0b,
- 0x31ce88,
- 0x258b44,
- 0x253805,
- 0x255e47,
- 0x257a05,
- 0x2d9a8a,
- 0x258a83,
- 0x1aa21842,
- 0x258d84,
- 0x25ae49,
- 0x25edc3,
- 0x25ee87,
- 0x3ac249,
- 0x280d08,
- 0x200c83,
- 0x276607,
- 0x276d49,
- 0x202883,
- 0x27d9c4,
- 0x282309,
- 0x2856c6,
- 0x286e03,
- 0x2038c2,
- 0x233e83,
- 0x39b6c7,
- 0x37f785,
- 0x3585c6,
- 0x247b84,
- 0x2d37c5,
- 0x207a03,
- 0x21ac86,
- 0x20d382,
- 0x390e04,
- 0x227982,
- 0x2db883,
- 0x1ae007c2,
- 0x244a43,
- 0x21a544,
- 0x21a547,
- 0x3713c6,
- 0x2499c2,
- 0x1b22d642,
- 0x325e44,
- 0x1b626b02,
- 0x1ba0acc2,
- 0x2d6484,
- 0x2d6485,
- 0x2c3e85,
- 0x341a46,
- 0x1be01e02,
- 0x29fe45,
- 0x2ded05,
- 0x201e03,
- 0x3650c6,
- 0x378445,
- 0x213682,
- 0x33a005,
- 0x213684,
- 0x217c43,
- 0x219343,
- 0x1c20c502,
- 0x28e147,
- 0x35d884,
- 0x35d889,
- 0x247884,
- 0x22b603,
- 0x346449,
- 0x360e88,
- 0x2a3c84,
- 0x2a3c86,
- 0x201f83,
- 0x212883,
- 0x21eb03,
- 0x1c6e1102,
- 0x2e9182,
- 0x1ca0b2c2,
- 0x316b88,
- 0x34afc8,
- 0x394986,
- 0x2549c5,
- 0x21a905,
- 0x306007,
- 0x255805,
- 0x21c2c2,
- 0x1ce61e82,
- 0x1614b82,
- 0x38fa48,
- 0x33b585,
- 0x2c8084,
- 0x2e0b85,
- 0x390507,
- 0x258884,
- 0x23a882,
- 0x1d204c42,
- 0x32c704,
- 0x213507,
- 0x3abd87,
- 0x370a04,
- 0x28ea43,
- 0x244644,
- 0x244648,
- 0x231ac6,
- 0x24d70a,
- 0x206984,
- 0x28edc8,
- 0x253ac4,
- 0x224646,
- 0x290e84,
- 0x357e86,
- 0x35db49,
- 0x259187,
- 0x33a683,
- 0x1d605e82,
- 0x26a843,
- 0x20ff82,
- 0x1da04d42,
- 0x2dfe86,
- 0x35ed48,
- 0x2a5287,
- 0x3a30c9,
- 0x23a4c9,
- 0x2a5c85,
- 0x2a6e49,
- 0x2a7b45,
- 0x2a7c89,
- 0x2a8b85,
- 0x284244,
- 0x1de84247,
- 0x2957c3,
- 0x2a9c07,
- 0x3a5546,
- 0x2aa407,
- 0x2a2945,
- 0x2aba83,
- 0x1e232a02,
- 0x392844,
- 0x1e63a3c2,
- 0x25a183,
- 0x1ea0f1c2,
- 0x2e8b86,
- 0x38df85,
- 0x2acb87,
- 0x324d83,
- 0x250a44,
- 0x206f83,
- 0x20b343,
- 0x1ee082c2,
- 0x1f600042,
- 0x394344,
- 0x23aa43,
- 0x364885,
- 0x25fcc5,
- 0x1fa05602,
- 0x20200942,
- 0x276946,
- 0x209744,
- 0x30c6c4,
- 0x30c6ca,
- 0x20a00a82,
- 0x2f768a,
- 0x372fc8,
- 0x20e01604,
- 0x201d83,
- 0x216c03,
- 0x3209c9,
- 0x223349,
- 0x300546,
- 0x21202243,
- 0x2da985,
- 0x2f81cd,
- 0x202246,
- 0x2065cb,
- 0x21606382,
- 0x333208,
- 0x21a0bf02,
- 0x21e00b42,
- 0x2af285,
- 0x222074c2,
- 0x264c47,
- 0x2a2247,
- 0x2103c3,
- 0x2ae348,
- 0x22601982,
- 0x203a04,
- 0x3786c3,
- 0x332c05,
- 0x3833c3,
- 0x38da46,
- 0x31b204,
- 0x23c2c3,
- 0x26ad83,
- 0x22a095c2,
- 0x22aa44,
- 0x351445,
- 0x36bb47,
- 0x274643,
- 0x2ad803,
- 0x2aed83,
- 0x1621a82,
- 0x2aee43,
- 0x2af643,
- 0x22e04282,
- 0x2f5d44,
- 0x378306,
- 0x204283,
- 0x2af9c3,
- 0x232b09c2,
- 0x2b09c8,
- 0x2b1404,
- 0x25a546,
- 0x2b1847,
- 0x22ba06,
- 0x230d44,
- 0x30e001c2,
- 0x3a540b,
- 0x39fb4e,
- 0x21c80f,
- 0x233383,
- 0x31633e42,
- 0x1604ec2,
- 0x31a02b82,
- 0x227683,
- 0x202b83,
- 0x235c06,
- 0x2aea46,
- 0x27d807,
- 0x34aa44,
- 0x31e1bb82,
- 0x32229e82,
- 0x228e45,
- 0x3a4ac7,
- 0x371b86,
- 0x326436c2,
- 0x2436c4,
- 0x36e203,
- 0x32a09682,
- 0x32f508c3,
- 0x391004,
- 0x2b6b49,
- 0x16bc882,
- 0x33216c82,
- 0x216c85,
- 0x33644802,
- 0x33a00102,
- 0x33e507,
- 0x239049,
- 0x35364b,
- 0x241cc5,
- 0x377609,
- 0x2bcfc6,
- 0x22d0c7,
- 0x33e0c744,
- 0x305ac9,
- 0x35a787,
- 0x201b47,
- 0x209883,
- 0x209886,
- 0x2da2c7,
- 0x206003,
- 0x271e46,
- 0x34605642,
- 0x34a34642,
- 0x21fa43,
- 0x250645,
- 0x222547,
- 0x281b86,
- 0x37f705,
- 0x311244,
- 0x3b1405,
- 0x2e8904,
- 0x34e02102,
- 0x3210c7,
- 0x2d6044,
- 0x223244,
- 0x22324d,
- 0x248809,
- 0x2e0f48,
- 0x22cd04,
- 0x209b05,
- 0x27ee47,
- 0x332784,
- 0x22ef87,
- 0x3a8405,
- 0x353a9084,
- 0x2fa005,
- 0x25da84,
- 0x265d46,
- 0x319985,
- 0x35636b42,
- 0x212e04,
- 0x212e05,
- 0x213206,
- 0x37f845,
- 0x256584,
- 0x2dbc83,
- 0x32fd86,
- 0x220f45,
- 0x225285,
- 0x319a84,
- 0x206a03,
- 0x206a0c,
- 0x35a86002,
- 0x35e01042,
- 0x3620b402,
- 0x332683,
- 0x332684,
- 0x366061c2,
- 0x3a6088,
- 0x358685,
- 0x236604,
- 0x23b9c6,
- 0x36a0a242,
- 0x36e09bc2,
- 0x37200982,
- 0x2d8845,
- 0x251186,
- 0x341204,
- 0x2814c6,
- 0x3340c6,
- 0x203483,
- 0x3772788a,
- 0x23ad85,
+ 0x2474c3,
+ 0x39bc83,
+ 0x235143,
+ 0x242cc6,
+ 0x2ce085,
+ 0x2c8e47,
+ 0x2d0589,
+ 0x2ccac5,
+ 0x2cdfc6,
+ 0x2ce548,
+ 0x2ce746,
+ 0x245bc4,
+ 0x29ef8b,
+ 0x2d3983,
+ 0x2d3985,
+ 0x2d3ac8,
+ 0x226302,
+ 0x341982,
+ 0x4024db02,
+ 0x4060b602,
+ 0x21a8c3,
+ 0x40a73fc2,
+ 0x273fc3,
+ 0x2d3dc4,
+ 0x2d4e43,
+ 0x41201682,
+ 0x41601686,
+ 0x2c47c6,
+ 0x2da008,
+ 0x41a95242,
+ 0x41e10882,
+ 0x42223342,
+ 0x4265e402,
+ 0x42a14202,
+ 0x42e01302,
+ 0x234103,
+ 0x261c05,
+ 0x32d1c6,
+ 0x43213184,
+ 0x295c4a,
+ 0x201306,
+ 0x2f7ec4,
+ 0x269ec3,
+ 0x43e0c002,
+ 0x202082,
+ 0x231743,
+ 0x44204ac3,
+ 0x362b47,
+ 0x3695c7,
+ 0x45a58847,
+ 0x32d747,
+ 0x228543,
+ 0x2977ca,
+ 0x377004,
+ 0x220144,
+ 0x22014a,
+ 0x202085,
+ 0x45e04182,
+ 0x3294c3,
+ 0x462002c2,
+ 0x2104c3,
0x274803,
- 0x225046,
- 0x2efe09,
- 0x225047,
- 0x28bd48,
- 0x293849,
- 0x219888,
- 0x36a346,
- 0x20b203,
- 0x37a9a1c2,
- 0x3856c3,
- 0x3856c9,
- 0x3357c8,
- 0x37e09782,
- 0x38206742,
- 0x2348c3,
- 0x2cf145,
- 0x253304,
- 0x31c8c9,
- 0x25f6c4,
- 0x2b1648,
- 0x206743,
- 0x24f244,
- 0x326b83,
- 0x21ba88,
- 0x223187,
- 0x38643742,
- 0x269d42,
- 0x238c45,
- 0x268849,
- 0x211003,
- 0x278184,
- 0x2da944,
- 0x202c03,
- 0x278cca,
- 0x38b72e82,
- 0x38e12dc2,
- 0x2bdb03,
- 0x3751c3,
- 0x164f202,
- 0x250d03,
- 0x39250042,
- 0x39603042,
- 0x39b07b04,
- 0x366086,
- 0x3469c6,
- 0x276b84,
- 0x25a943,
- 0x27be43,
- 0x2e4983,
- 0x23f286,
- 0x2c2e45,
- 0x2be0c7,
- 0x22cf89,
- 0x2c1d45,
- 0x2c2d86,
- 0x2c3708,
- 0x2c3906,
- 0x238744,
- 0x29718b,
- 0x2c6383,
- 0x2c6385,
- 0x2c64c8,
- 0x21e442,
- 0x33e802,
- 0x39e43b02,
- 0x3a20e842,
- 0x21bbc3,
- 0x3a600e02,
- 0x269fc3,
- 0x2c67c4,
- 0x2c8183,
- 0x3ae25682,
- 0x3b2cc5c6,
- 0x2bb346,
- 0x2ccc08,
- 0x3b6cad42,
- 0x3ba111c2,
- 0x3be19382,
- 0x3c209f82,
- 0x3c614882,
- 0x3ca00ac2,
- 0x228343,
- 0x318d45,
- 0x209c86,
- 0x3ce12444,
- 0x3ab20a,
- 0x310606,
- 0x22ad04,
- 0x27e943,
- 0x3da06bc2,
- 0x205902,
- 0x24dbc3,
- 0x3de38483,
- 0x2ee087,
- 0x319887,
- 0x3f252c07,
- 0x20f007,
- 0x215a43,
- 0x22c6ca,
- 0x240584,
- 0x341504,
- 0x34150a,
- 0x247045,
- 0x3f601642,
- 0x24d483,
- 0x3fa01dc2,
- 0x201f43,
- 0x26a803,
- 0x40201942,
- 0x29a0c4,
- 0x220a84,
- 0x3a36c5,
- 0x2d7205,
- 0x22da06,
- 0x22dd86,
- 0x40608382,
- 0x40a025c2,
- 0x2eb445,
- 0x2bb052,
- 0x29fbc6,
- 0x21ce83,
- 0x2fd346,
- 0x221d85,
- 0x1611342,
- 0x48e0d502,
- 0x2ed8c3,
- 0x212043,
- 0x265603,
- 0x49203382,
- 0x379ac3,
- 0x49602182,
- 0x204a03,
- 0x2f5d88,
- 0x223b43,
- 0x223b46,
- 0x333a07,
- 0x2d84c6,
- 0x2d84cb,
- 0x22ac47,
- 0x392644,
- 0x49e02602,
- 0x3a6505,
- 0x215a03,
- 0x22fd83,
- 0x31aa03,
- 0x31aa06,
- 0x2d038a,
- 0x26d703,
- 0x21d5c4,
- 0x318146,
- 0x3b1e46,
- 0x4a2264c3,
- 0x250907,
- 0x29cf8d,
- 0x39eb87,
- 0x296ec5,
- 0x237806,
- 0x220f83,
- 0x4bb65303,
- 0x4be07a82,
- 0x307604,
- 0x21e3cc,
- 0x35bb89,
- 0x36f307,
- 0x246045,
- 0x255904,
- 0x26ae08,
- 0x274885,
- 0x274a85,
- 0x3612c9,
- 0x335283,
- 0x2a6b84,
- 0x4c206d42,
- 0x206d43,
- 0x4c690942,
- 0x295bc6,
- 0x16b5482,
- 0x4ca95782,
- 0x2d8748,
- 0x2b6d43,
- 0x2f9f47,
- 0x2d7785,
- 0x295785,
- 0x2f6c4b,
- 0x2d1f06,
- 0x2f6e46,
- 0x2f9d06,
- 0x226284,
- 0x2d4ac6,
- 0x2d5048,
- 0x234b03,
- 0x252ec3,
- 0x252ec4,
- 0x2d70c4,
- 0x2d7487,
- 0x2d8185,
- 0x4ced82c2,
- 0x4d206a42,
- 0x209285,
- 0x2990c4,
- 0x2dac8b,
- 0x2dbd48,
- 0x2e6804,
- 0x243702,
- 0x4da80b82,
- 0x2b0c03,
- 0x2dc204,
- 0x2dc4c5,
- 0x272d87,
- 0x2e06c4,
- 0x22ab04,
- 0x4de07442,
- 0x359f49,
- 0x2e1585,
- 0x241f85,
- 0x2e2105,
- 0x4e21bd03,
- 0x2e2f44,
- 0x2e2f4b,
- 0x2e3444,
- 0x2e3ecb,
- 0x2e48c5,
- 0x21c94a,
- 0x2e4f88,
- 0x2e518a,
- 0x2e5a03,
- 0x2e5a0a,
- 0x4e626402,
- 0x4ea41542,
- 0x265903,
- 0x4eee7d82,
- 0x2e7d83,
- 0x4f35d142,
- 0x4f7157c2,
- 0x2e8784,
- 0x21dd86,
- 0x281205,
- 0x2e91c3,
- 0x29ef06,
- 0x21d445,
- 0x21e104,
- 0x4fa08782,
- 0x2ca784,
- 0x2bf10a,
- 0x386847,
- 0x38ddc6,
- 0x2d0847,
- 0x21e503,
- 0x253b48,
- 0x25b5cb,
- 0x300645,
- 0x2b6e85,
- 0x2b6e86,
- 0x225904,
- 0x335b88,
- 0x20b4c3,
- 0x20e204,
- 0x20e207,
- 0x280ec6,
- 0x321746,
- 0x29b68a,
- 0x244fc4,
- 0x244fca,
- 0x2de886,
- 0x2de887,
- 0x253887,
- 0x26f884,
- 0x26f889,
- 0x24b7c5,
- 0x23a30b,
- 0x26ddc3,
- 0x20d0c3,
- 0x21a943,
- 0x231e84,
- 0x4fe04b42,
- 0x254186,
- 0x2ab805,
- 0x2b2dc5,
- 0x3324c6,
- 0x279384,
- 0x502013c2,
- 0x240b44,
- 0x50607982,
- 0x232984,
- 0x227783,
- 0x50a12082,
- 0x349f83,
- 0x24ae86,
- 0x50e01bc2,
- 0x30f108,
- 0x224ec4,
- 0x224ec6,
- 0x305546,
- 0x255f04,
- 0x32fd05,
- 0x3a8108,
- 0x3a8607,
- 0x3b0bc7,
- 0x3b0bcf,
- 0x28f286,
- 0x210d03,
- 0x210d04,
- 0x2251c4,
- 0x229103,
- 0x224784,
- 0x373e44,
- 0x51226442,
- 0x287303,
- 0x390683,
- 0x51617642,
- 0x222a43,
- 0x24f803,
- 0x218e4a,
- 0x23b5c7,
- 0x3a568c,
- 0x3a5946,
- 0x230ac6,
- 0x23a6c7,
- 0x2302c7,
- 0x23e289,
- 0x21f144,
- 0x23ea84,
- 0x51a0a442,
- 0x51e01402,
- 0x29ba46,
- 0x250704,
- 0x376e86,
- 0x230748,
- 0x330cc4,
- 0x264c86,
- 0x2c9745,
- 0x25f008,
- 0x207503,
- 0x266a45,
- 0x269b43,
- 0x242083,
- 0x242084,
- 0x26afc3,
- 0x522e1202,
- 0x52602482,
- 0x26dc89,
- 0x274985,
- 0x283dc4,
- 0x3614c5,
- 0x210804,
- 0x2ed107,
- 0x33fac5,
- 0x252dc4,
- 0x252dc8,
- 0x2d3486,
- 0x2d5204,
- 0x2d5208,
- 0x2d5e87,
- 0x52a015c2,
- 0x2da0c4,
- 0x2d3904,
- 0x201d47,
- 0x52e41384,
- 0x22dc82,
- 0x53201882,
- 0x202b43,
- 0x216b84,
- 0x222903,
- 0x222905,
- 0x5362c082,
- 0x2e9085,
- 0x210fc2,
- 0x376445,
- 0x35ef05,
- 0x53a168c2,
- 0x2168c4,
- 0x53e08d82,
- 0x2c7b06,
- 0x2ac106,
- 0x268988,
- 0x2b7b88,
- 0x2e8b04,
- 0x35e245,
- 0x2f39c9,
- 0x29f484,
- 0x2d0344,
- 0x2513c3,
- 0x5420dfc5,
- 0x374f07,
- 0x2881c4,
- 0x35a90d,
- 0x35b202,
- 0x3858c3,
- 0x39a083,
- 0x54601082,
- 0x3886c5,
- 0x31b447,
- 0x20f0c4,
- 0x20f0c7,
- 0x293a49,
- 0x2bf249,
- 0x214687,
- 0x24fa83,
- 0x2b52c8,
- 0x23dd09,
- 0x2e9947,
- 0x2e9cc5,
- 0x2ea486,
- 0x2eaac6,
- 0x2eac45,
- 0x248905,
- 0x54a01282,
- 0x228685,
- 0x2b9988,
- 0x2a79c6,
- 0x3a1c87,
- 0x2e4b04,
- 0x2ab1c7,
- 0x2edd06,
- 0x54e00242,
- 0x212f06,
- 0x2f004a,
- 0x2f1045,
- 0x552d29c2,
- 0x55638282,
- 0x2da606,
- 0x3574c8,
- 0x55babf47,
- 0x55e00602,
- 0x20a503,
- 0x3b0306,
- 0x30aa04,
- 0x3338c6,
- 0x341746,
- 0x3971ca,
- 0x3a1e05,
- 0x20d586,
- 0x218743,
- 0x218744,
- 0x207282,
- 0x2fe483,
- 0x56253e82,
- 0x2dd843,
- 0x2f7904,
- 0x2dca04,
- 0x35760a,
- 0x245483,
- 0x283b08,
- 0x36a40a,
- 0x278447,
- 0x2f4846,
- 0x2c79c4,
- 0x22abc2,
- 0x200e42,
- 0x56609202,
- 0x244603,
- 0x253647,
- 0x29f1c7,
- 0x38f98b,
- 0x3643c4,
- 0x349447,
- 0x272e86,
- 0x213807,
- 0x2ad204,
- 0x33bb85,
- 0x2a96c5,
- 0x56a10442,
- 0x221a46,
- 0x2259c3,
- 0x226cc2,
- 0x226cc6,
- 0x56e0d942,
- 0x57203e42,
- 0x203e45,
- 0x57624982,
- 0x57a06ec2,
- 0x358845,
- 0x2c0f45,
- 0x20d645,
- 0x264183,
- 0x340185,
- 0x2d1fc7,
- 0x2aa2c5,
- 0x3219c5,
- 0x38b604,
- 0x379bc6,
- 0x243c84,
- 0x57e00cc2,
- 0x276485,
- 0x2a4887,
- 0x377088,
- 0x26a8c6,
- 0x26a8cd,
- 0x270789,
- 0x270792,
- 0x322045,
- 0x326e03,
- 0x58a019c2,
- 0x2e6004,
- 0x2022c3,
- 0x35e145,
- 0x2f2605,
- 0x58e21e42,
- 0x290f03,
- 0x59242d42,
- 0x59694082,
- 0x59a18882,
- 0x346e05,
- 0x2a1003,
- 0x397008,
- 0x59e011c2,
- 0x5a203282,
- 0x29a086,
- 0x27f30a,
- 0x204983,
- 0x256503,
- 0x2f3c43,
- 0x5ae06202,
- 0x692033c2,
- 0x69a04cc2,
- 0x203dc2,
- 0x38bd09,
- 0x2bbcc4,
- 0x2ae648,
- 0x69ee9202,
- 0x6a205882,
- 0x2e4105,
- 0x2355c8,
- 0x247d88,
- 0x2f334c,
- 0x23a183,
- 0x25d442,
- 0x6a62d742,
- 0x2c21c6,
- 0x2f56c5,
- 0x30f5c3,
- 0x3903c6,
- 0x2f5806,
- 0x22fc43,
- 0x2f6a03,
- 0x2f6fc6,
- 0x2f7d84,
- 0x270186,
- 0x2c6545,
- 0x2f800a,
- 0x23d184,
- 0x2f8d84,
- 0x34b94a,
- 0x6aa6cd42,
- 0x347a45,
- 0x2fa44a,
- 0x2fb885,
- 0x2fc404,
- 0x2fc506,
- 0x2fc684,
- 0x366dc6,
- 0x6ae00282,
- 0x38d706,
- 0x38e7c5,
- 0x204707,
- 0x239f46,
- 0x22d584,
- 0x22d587,
- 0x3277c6,
- 0x212f45,
- 0x2c6c87,
- 0x39ae07,
- 0x39ae0e,
- 0x223ec6,
- 0x22ee45,
- 0x279a07,
- 0x2deb83,
- 0x2deb87,
- 0x3a8a05,
- 0x211204,
- 0x2120c2,
- 0x37a547,
- 0x34aac4,
- 0x2ae9c4,
- 0x269bcb,
- 0x2201c3,
- 0x2c3a47,
- 0x2201c4,
- 0x2ce307,
- 0x238943,
- 0x32914d,
- 0x388f08,
- 0x252cc4,
- 0x252cc5,
- 0x2fca45,
- 0x2fd003,
- 0x6b224dc2,
- 0x2fe443,
- 0x2fea03,
- 0x365c44,
- 0x276e45,
- 0x2193c7,
- 0x2187c6,
- 0x372f83,
- 0x226e0b,
- 0x29d34b,
- 0x267c4b,
- 0x276f4a,
- 0x2a734b,
- 0x2cae0b,
- 0x2d2a0c,
- 0x2d5711,
- 0x33d90a,
- 0x34e1cb,
- 0x37bd0b,
- 0x3ae28a,
- 0x3b2eca,
- 0x2ff60d,
- 0x300d4e,
- 0x301b4b,
- 0x301e0a,
- 0x302d51,
- 0x30318a,
- 0x30368b,
- 0x303bce,
- 0x30450c,
- 0x30498b,
- 0x304c4e,
- 0x304fcc,
- 0x3087ca,
- 0x3098cc,
- 0x6b709bca,
- 0x30adc9,
- 0x30c94a,
- 0x30cbca,
- 0x30ce4b,
- 0x312f8e,
- 0x313311,
- 0x31bcc9,
- 0x31bf0a,
- 0x31cb0b,
- 0x31e2ca,
- 0x31ee56,
- 0x32060b,
- 0x321e0a,
- 0x32220a,
- 0x32424b,
- 0x326889,
- 0x329ac9,
- 0x32ae0d,
- 0x32c48b,
- 0x32d60b,
- 0x32dfcb,
- 0x32e449,
- 0x32ea8e,
- 0x32efca,
- 0x335e4a,
- 0x33648a,
- 0x336e4b,
- 0x33768b,
- 0x33794d,
- 0x33904d,
- 0x339c90,
- 0x33a14b,
- 0x33ac8c,
- 0x33c3cb,
- 0x33e00b,
- 0x33f64b,
- 0x34490b,
- 0x34538f,
- 0x34574b,
- 0x34600a,
- 0x346709,
- 0x346b49,
- 0x34808b,
- 0x34834e,
- 0x34bfcb,
- 0x34cd8f,
- 0x34ed8b,
- 0x34f04b,
- 0x34f30b,
- 0x34f74a,
- 0x353249,
- 0x35624f,
- 0x35ce4c,
- 0x35d34c,
- 0x35de0e,
- 0x35e48f,
- 0x35e84e,
- 0x35fa90,
- 0x35fe8f,
- 0x3608ce,
- 0x3617cc,
- 0x361ad2,
- 0x36b751,
- 0x36bd0e,
- 0x36c14e,
+ 0x46a00842,
+ 0x2e33c4,
+ 0x21db44,
+ 0x208285,
+ 0x30bd05,
+ 0x249406,
+ 0x249786,
+ 0x46e09282,
+ 0x47201002,
+ 0x3274c5,
+ 0x2c44d2,
+ 0x271ac6,
+ 0x248803,
+ 0x2a2486,
+ 0x248805,
+ 0x1610a02,
+ 0x4f611802,
+ 0x3522c3,
+ 0x211803,
+ 0x278203,
+ 0x4fa11f82,
+ 0x378ac3,
+ 0x4fe14602,
+ 0x200a83,
+ 0x2ceec8,
+ 0x24a843,
+ 0x24a846,
+ 0x3a1087,
+ 0x321b06,
+ 0x321b0b,
+ 0x2f7e07,
+ 0x392404,
+ 0x50603ec2,
+ 0x364805,
+ 0x50a04a83,
+ 0x239f83,
+ 0x326805,
+ 0x35b5c3,
+ 0x35b5c6,
+ 0x26334a,
+ 0x2774c3,
+ 0x23ad04,
+ 0x2c2806,
+ 0x20df46,
+ 0x50e00383,
+ 0x324b07,
+ 0x28bb8d,
+ 0x3adbc7,
+ 0x2a0685,
+ 0x250b46,
+ 0x22c0c3,
+ 0x52a15e43,
+ 0x52e04c82,
+ 0x3b2804,
+ 0x236d8c,
+ 0x245309,
+ 0x24bcc7,
+ 0x3724c5,
+ 0x268d84,
+ 0x27c1c8,
+ 0x27ed05,
+ 0x5328a405,
+ 0x377c09,
+ 0x256343,
+ 0x2acd44,
+ 0x53617902,
+ 0x21aac3,
+ 0x53a99f82,
+ 0x2a3fc6,
+ 0x16aa082,
+ 0x53e943c2,
+ 0x321d88,
+ 0x2c08c3,
+ 0x36de07,
+ 0x305105,
+ 0x2943c5,
+ 0x30860b,
+ 0x2e3906,
+ 0x308806,
+ 0x36dbc6,
+ 0x268f84,
+ 0x2e5686,
+ 0x2e5b48,
+ 0x23e943,
+ 0x23cf83,
+ 0x23cf84,
+ 0x2e6984,
+ 0x2e6e07,
+ 0x2e8745,
+ 0x542e8882,
+ 0x54606ec2,
+ 0x206ec5,
+ 0x2a4a84,
+ 0x2ebf8b,
+ 0x2ee248,
+ 0x2f7304,
+ 0x290602,
+ 0x54eb6042,
+ 0x38c543,
+ 0x2ee704,
+ 0x2ee9c5,
+ 0x2ef087,
+ 0x2f1404,
+ 0x2f7cc4,
+ 0x552054c2,
+ 0x35d209,
+ 0x2f2445,
+ 0x2716c5,
+ 0x2f3105,
+ 0x5561aa03,
+ 0x2f4244,
+ 0x2f424b,
+ 0x2f4684,
+ 0x2f4b0b,
+ 0x2f5505,
+ 0x21bc4a,
+ 0x2f5d08,
+ 0x2f5f0a,
+ 0x2f6783,
+ 0x2f678a,
+ 0x55a1b282,
+ 0x55e01202,
+ 0x26a103,
+ 0x562f7902,
+ 0x2f7903,
+ 0x5673aa42,
+ 0x56b21202,
+ 0x2f8104,
+ 0x21c2c6,
+ 0x325d05,
+ 0x2f8b43,
+ 0x32ff46,
+ 0x30c845,
+ 0x2e9784,
+ 0x56e00e02,
+ 0x2d7904,
+ 0x2c9c4a,
+ 0x2eb487,
+ 0x26b686,
+ 0x244007,
+ 0x236ec3,
+ 0x265488,
+ 0x28954b,
+ 0x386a45,
+ 0x235905,
+ 0x235906,
+ 0x370204,
+ 0x31d488,
+ 0x215a83,
+ 0x2b5984,
+ 0x36b507,
+ 0x307206,
+ 0x200e06,
+ 0x2a58ca,
+ 0x24e684,
+ 0x24e68a,
+ 0x57201946,
+ 0x201947,
+ 0x259547,
+ 0x279804,
+ 0x279809,
+ 0x2ba485,
+ 0x23b80b,
+ 0x2769c3,
+ 0x211c03,
+ 0x2a3f43,
+ 0x22ec44,
+ 0x57600682,
+ 0x259f06,
+ 0x2a7d05,
+ 0x2a26c5,
+ 0x2564c6,
+ 0x2531c4,
+ 0x57a01f82,
+ 0x245244,
+ 0x57e00d42,
+ 0x200d44,
+ 0x224303,
+ 0x58211842,
+ 0x3398c3,
+ 0x2478c6,
+ 0x58602602,
+ 0x2cfb88,
+ 0x223704,
+ 0x223706,
+ 0x375846,
+ 0x25bb44,
+ 0x204905,
+ 0x20c408,
+ 0x20c907,
+ 0x20d007,
+ 0x20d00f,
+ 0x298bc6,
+ 0x227843,
+ 0x227844,
+ 0x28be84,
+ 0x210e83,
+ 0x222c84,
+ 0x241104,
+ 0x58a36b82,
+ 0x28e183,
+ 0x241383,
+ 0x58e0c4c2,
+ 0x22a543,
+ 0x260883,
+ 0x213e8a,
+ 0x22bc87,
+ 0x241c8c,
+ 0x241f46,
+ 0x242406,
+ 0x246dc7,
+ 0x592ddb07,
+ 0x251a09,
+ 0x21cc04,
+ 0x252284,
+ 0x59609f42,
+ 0x59a01702,
+ 0x2a5c86,
+ 0x324904,
+ 0x2db5c6,
+ 0x2ab348,
+ 0x20eec4,
+ 0x2a3186,
+ 0x2d68c5,
+ 0x26ebc8,
+ 0x205583,
+ 0x272605,
+ 0x273583,
+ 0x2717c3,
+ 0x2717c4,
+ 0x273983,
+ 0x59edeec2,
+ 0x5a200b42,
+ 0x276889,
+ 0x27ec05,
+ 0x27ee04,
+ 0x281305,
+ 0x212504,
+ 0x2c1247,
+ 0x33d3c5,
+ 0x258a04,
+ 0x258a08,
+ 0x2dc3c6,
+ 0x2de404,
+ 0x2dfdc8,
+ 0x2e1a87,
+ 0x5a60e5c2,
+ 0x305304,
+ 0x210f44,
+ 0x2257c7,
+ 0x5aa53d84,
+ 0x249682,
+ 0x5ae01ac2,
+ 0x21b083,
+ 0x351144,
+ 0x242643,
+ 0x33d945,
+ 0x5b21de42,
+ 0x2ebb05,
+ 0x212bc2,
+ 0x381dc5,
+ 0x364305,
+ 0x5b60c842,
+ 0x3581c4,
+ 0x5ba06342,
+ 0x2a9146,
+ 0x2ac506,
+ 0x396208,
+ 0x2c3608,
+ 0x3075c4,
+ 0x2f8905,
+ 0x2fe809,
+ 0x2e10c4,
+ 0x263304,
+ 0x20aec3,
+ 0x5be20c45,
+ 0x2c7087,
+ 0x25e944,
+ 0x33a48d,
+ 0x33c282,
+ 0x33c283,
+ 0x355783,
+ 0x5c200202,
+ 0x388b45,
+ 0x26c747,
+ 0x2a7e04,
+ 0x32d807,
+ 0x29d849,
+ 0x2c9d89,
+ 0x248ac7,
+ 0x243843,
+ 0x27c008,
+ 0x2f33c9,
+ 0x2500c7,
+ 0x370145,
+ 0x385886,
+ 0x394246,
+ 0x3959c5,
+ 0x257345,
+ 0x5c603102,
+ 0x27eb05,
+ 0x2b8308,
+ 0x2c5386,
+ 0x2bcc07,
+ 0x2f5744,
+ 0x2ad207,
+ 0x2faf46,
+ 0x5ca2fb02,
+ 0x3713c6,
+ 0x2fd38a,
+ 0x2fde45,
+ 0x5cee4742,
+ 0x5d245702,
+ 0x30fbc6,
+ 0x2b25c8,
+ 0x5d68eb87,
+ 0x5da04602,
+ 0x20edc3,
+ 0x38c706,
+ 0x2246c4,
+ 0x3a0f46,
+ 0x262446,
+ 0x26bd0a,
+ 0x319a45,
+ 0x204446,
+ 0x218c83,
+ 0x218c84,
+ 0x205302,
+ 0x30c283,
+ 0x5de05dc2,
+ 0x2ce903,
+ 0x3734c4,
+ 0x2b2704,
+ 0x2b270a,
+ 0x229b03,
+ 0x28a7c8,
+ 0x229b0a,
+ 0x23a407,
+ 0x301446,
+ 0x2a9004,
+ 0x296e42,
+ 0x219542,
+ 0x5e206e42,
+ 0x24e1c3,
+ 0x259307,
+ 0x330207,
+ 0x38fd4b,
+ 0x28a2c4,
+ 0x34f9c7,
+ 0x2ef186,
+ 0x21c607,
+ 0x258004,
+ 0x23c445,
+ 0x2c17c5,
+ 0x5e620382,
+ 0x221a86,
+ 0x246043,
+ 0x24a2c2,
+ 0x24a2c6,
+ 0x5ea04802,
+ 0x5ee05bc2,
+ 0x3abd45,
+ 0x5f222e82,
+ 0x5f600a42,
+ 0x343745,
+ 0x38e6c5,
+ 0x204505,
+ 0x270ac3,
+ 0x390b05,
+ 0x2e39c7,
+ 0x309445,
+ 0x30a985,
+ 0x3a05c4,
+ 0x24c646,
+ 0x25c1c4,
+ 0x5fa03382,
+ 0x6060ce05,
+ 0x36f447,
+ 0x2db7c8,
+ 0x2a32c6,
+ 0x2a32cd,
+ 0x2a86c9,
+ 0x2a86d2,
+ 0x332705,
+ 0x33c843,
+ 0x60a044c2,
+ 0x2f6d84,
+ 0x204383,
+ 0x3623c5,
+ 0x2fed85,
+ 0x60e17082,
+ 0x3700c3,
+ 0x6124d082,
+ 0x616c3142,
+ 0x61a18dc2,
+ 0x364c05,
+ 0x329ec3,
+ 0x319888,
+ 0x61e02d82,
+ 0x62206902,
+ 0x2e3386,
+ 0x34398a,
+ 0x272243,
+ 0x25c083,
+ 0x2ed703,
+ 0x62e016c2,
+ 0x71211fc2,
+ 0x71a19682,
+ 0x206602,
+ 0x3711c9,
+ 0x2c6404,
+ 0x22fb48,
+ 0x71ef8b82,
+ 0x72202502,
+ 0x2f4d45,
+ 0x232ac8,
+ 0x2cf008,
+ 0x2fd54c,
+ 0x23bd83,
+ 0x267002,
+ 0x726019c2,
+ 0x2ccf46,
+ 0x3022c5,
+ 0x239103,
+ 0x383586,
+ 0x302406,
+ 0x21e2c3,
+ 0x304ec3,
+ 0x3055c6,
+ 0x306204,
+ 0x225d46,
+ 0x2d3b45,
+ 0x30648a,
+ 0x240544,
+ 0x307884,
+ 0x307a4a,
+ 0x72a037c2,
+ 0x234605,
+ 0x30898a,
+ 0x309a85,
+ 0x30a344,
+ 0x30a446,
+ 0x30a5c4,
+ 0x228306,
+ 0x72e39342,
+ 0x2eadc6,
+ 0x3a2445,
+ 0x26bb87,
+ 0x3a3c46,
+ 0x246fc4,
+ 0x2da807,
+ 0x311586,
+ 0x25b5c5,
+ 0x2d4287,
+ 0x39cd87,
+ 0x39cd8e,
+ 0x24abc6,
+ 0x382905,
+ 0x285407,
+ 0x201c43,
+ 0x201c47,
+ 0x3b3445,
+ 0x2108c4,
+ 0x211882,
+ 0x22afc7,
+ 0x31ab04,
+ 0x22fec4,
+ 0x24314b,
+ 0x21d283,
+ 0x288fc7,
+ 0x21d284,
+ 0x2ace07,
+ 0x2824c3,
+ 0x334b4d,
+ 0x389388,
+ 0x228e04,
+ 0x258905,
+ 0x30ac85,
+ 0x30b0c3,
+ 0x73201a82,
+ 0x30c243,
+ 0x30cf43,
+ 0x221c04,
+ 0x280785,
+ 0x223387,
+ 0x218d06,
+ 0x373203,
+ 0x24a40b,
+ 0x3aa70b,
+ 0x27928b,
+ 0x28088a,
+ 0x2ad8cb,
+ 0x2fc28b,
+ 0x2e478c,
+ 0x2e7291,
+ 0x32170a,
+ 0x34e48b,
+ 0x379d0b,
+ 0x3b048a,
+ 0x3b4cca,
+ 0x30ea4d,
+ 0x31038e,
+ 0x3109cb,
+ 0x310c8a,
+ 0x312191,
+ 0x3125ca,
+ 0x312acb,
+ 0x31300e,
+ 0x31398c,
+ 0x313fcb,
+ 0x31428e,
+ 0x31460c,
+ 0x315a4a,
+ 0x31694c,
+ 0x73716c4a,
+ 0x317449,
+ 0x31b60a,
+ 0x31b88a,
+ 0x31bb0b,
+ 0x31e9ce,
+ 0x31ed51,
+ 0x327a09,
+ 0x327c4a,
+ 0x32844b,
+ 0x32a30a,
+ 0x32ab96,
+ 0x32c8cb,
+ 0x32e00a,
+ 0x32e5ca,
+ 0x33048b,
+ 0x332189,
+ 0x3354c9,
+ 0x335a4d,
+ 0x3360cb,
+ 0x33734b,
+ 0x337d0b,
+ 0x3381c9,
+ 0x33880e,
+ 0x338f0a,
+ 0x33a24a,
+ 0x33a7ca,
+ 0x33af8b,
+ 0x33b7cb,
+ 0x33ba8d,
+ 0x33cecd,
+ 0x33da90,
+ 0x33df4b,
+ 0x33e54c,
+ 0x33ea4b,
+ 0x34118b,
+ 0x34290b,
+ 0x3463cb,
+ 0x346e4f,
+ 0x34720b,
+ 0x347d0a,
+ 0x348249,
+ 0x348609,
+ 0x34898b,
+ 0x348c4e,
+ 0x34b98b,
+ 0x34d04f,
+ 0x34ff0b,
+ 0x3501cb,
+ 0x35048b,
+ 0x35098a,
+ 0x355c09,
+ 0x35a20f,
+ 0x36128c,
+ 0x36170c,
+ 0x36208e,
+ 0x36388f,
+ 0x363c4e,
+ 0x3652d0,
+ 0x3656cf,
+ 0x365d4e,
+ 0x36650c,
+ 0x366812,
+ 0x36a511,
+ 0x36ad0e,
+ 0x36ba0e,
+ 0x36bf4e,
+ 0x36c2cf,
0x36c68e,
- 0x36ca0f,
- 0x36cdce,
- 0x36d153,
- 0x36d611,
- 0x36da4e,
- 0x36decc,
- 0x36e2d3,
- 0x36f650,
- 0x36ff0c,
- 0x37020c,
- 0x3706cb,
- 0x37168e,
+ 0x36ca13,
+ 0x36ced1,
+ 0x36d30e,
+ 0x36d78c,
+ 0x36e493,
+ 0x36fa90,
+ 0x37070c,
+ 0x370a0c,
+ 0x370ecb,
+ 0x37184e,
0x371f8b,
- 0x3723cb,
- 0x373b0c,
- 0x37acca,
- 0x37b50c,
- 0x37b80c,
- 0x37bb09,
- 0x37cf0b,
- 0x37d1c8,
- 0x37d3c9,
- 0x37d3cf,
- 0x37ed0b,
- 0x37fa0a,
- 0x380fcc,
- 0x382e49,
- 0x383208,
- 0x38374b,
- 0x383e4b,
- 0x384c8a,
- 0x384f0b,
- 0x38544c,
- 0x385e08,
- 0x38910b,
- 0x38ba0b,
- 0x38fc4b,
- 0x391a4b,
- 0x39a98b,
- 0x39ac49,
- 0x39b18d,
- 0x3a004a,
- 0x3a0f97,
- 0x3a2898,
- 0x3a5bc9,
+ 0x3727cb,
+ 0x37378c,
+ 0x37914a,
+ 0x37950c,
+ 0x37980c,
+ 0x379b09,
+ 0x37b7cb,
+ 0x37ba88,
+ 0x37bc89,
+ 0x37bc8f,
+ 0x37d5cb,
+ 0x37e44a,
+ 0x37fd4c,
+ 0x380e09,
+ 0x381b88,
+ 0x38214b,
+ 0x382c0b,
+ 0x38418a,
+ 0x38440b,
+ 0x38488c,
+ 0x385548,
+ 0x38958b,
+ 0x38c04b,
+ 0x39000b,
+ 0x39180b,
+ 0x39c90b,
+ 0x39cbc9,
+ 0x39d10d,
+ 0x3a264a,
+ 0x3a3597,
+ 0x3a3dd8,
+ 0x3a6309,
0x3a7b4b,
- 0x3a9414,
- 0x3a990b,
- 0x3a9e8a,
- 0x3aa30a,
- 0x3aa58b,
- 0x3ab590,
- 0x3ab991,
- 0x3ac48a,
- 0x3ad88d,
- 0x3adf8d,
- 0x3b328b,
- 0x3b4506,
- 0x221b43,
- 0x6bb99283,
- 0x323dc6,
- 0x28b6c5,
- 0x2c55c7,
- 0x33d7c6,
- 0x1617982,
- 0x2b0d49,
- 0x29ed04,
- 0x2cfe48,
- 0x242743,
- 0x2e5f47,
- 0x230902,
- 0x2acbc3,
- 0x6be006c2,
- 0x2c0586,
- 0x2c17c4,
- 0x307c84,
- 0x236c43,
- 0x236c45,
- 0x6c6ff382,
- 0x6caa8004,
- 0x26f7c7,
- 0x16ce2c2,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x2025c3,
- 0x200882,
- 0x880c8,
- 0x216582,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x217643,
- 0x317416,
- 0x31a5d3,
- 0x3492c9,
- 0x3aad88,
- 0x3a6389,
- 0x2fa5c6,
- 0x32c750,
- 0x21d6d3,
- 0x200b08,
- 0x25aa47,
- 0x274ec7,
- 0x29cb4a,
- 0x2f7989,
- 0x3336c9,
- 0x28a70b,
- 0x325506,
- 0x31cf8a,
- 0x223586,
- 0x29e903,
- 0x28e085,
- 0x217188,
- 0x2c7bcd,
- 0x357c4c,
- 0x38e487,
- 0x3025cd,
- 0x3a8204,
- 0x23214a,
- 0x232a8a,
- 0x232f4a,
- 0x21d9c7,
- 0x23cfc7,
- 0x23f644,
- 0x239506,
- 0x3258c4,
- 0x2ec848,
- 0x25f709,
- 0x2b83c6,
- 0x2b83c8,
- 0x2423cd,
- 0x2bf489,
- 0x378cc8,
- 0x241f07,
- 0x2fe78a,
- 0x24a4c6,
- 0x25a047,
- 0x2cdac4,
- 0x240d07,
- 0x30130a,
- 0x3397ce,
- 0x255805,
- 0x2fcd4b,
- 0x277a09,
- 0x223349,
- 0x2a2087,
- 0x358b0a,
- 0x201c87,
- 0x39fc89,
- 0x358108,
- 0x369c4b,
- 0x2cf145,
- 0x2e0e0a,
- 0x2a37c9,
- 0x30f54a,
- 0x2c1dcb,
- 0x240c0b,
- 0x28a495,
- 0x2d5d45,
- 0x241f85,
- 0x2e2f4a,
- 0x215cca,
- 0x310c47,
- 0x220683,
- 0x29b9c8,
- 0x2cb14a,
- 0x224ec6,
- 0x23db49,
- 0x25f008,
- 0x2d5204,
- 0x22fb09,
- 0x2b7b88,
- 0x32c247,
- 0x276486,
- 0x2a4887,
- 0x28fd87,
- 0x23f085,
- 0x25564c,
- 0x252cc5,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x216582,
- 0x22d183,
- 0x238483,
- 0x2025c3,
- 0x2264c3,
- 0x22d183,
- 0x238483,
- 0x223b43,
- 0x2264c3,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x216582,
- 0x201a42,
- 0x233182,
- 0x201982,
- 0x204c02,
- 0x293d42,
- 0x462d183,
- 0x2343c3,
- 0x211cc3,
- 0x21eb03,
- 0x202243,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x20b443,
- 0x880c8,
- 0x335d44,
- 0x24f007,
- 0x251fc3,
- 0x231404,
- 0x214bc3,
- 0x282343,
- 0x21eb03,
- 0x16e747,
- 0x200882,
- 0x123ac3,
- 0x5a16582,
- 0x86a0d,
- 0x233182,
- 0x1604,
- 0x201502,
- 0x5e01508,
- 0xe26c4,
- 0x880c8,
- 0x140de82,
- 0x14fa2c6,
- 0x230983,
- 0x316403,
- 0x662d183,
- 0x232144,
- 0x6a343c3,
- 0x6e1eb03,
- 0x2082c2,
- 0x201604,
- 0x238483,
- 0x212ec3,
- 0x202282,
- 0x2264c3,
- 0x21ed42,
- 0x2e86c3,
- 0x201bc2,
- 0x29c743,
- 0x22d743,
- 0x204702,
- 0x880c8,
- 0x230983,
- 0x212ec3,
- 0x202282,
- 0x2e86c3,
- 0x201bc2,
- 0x29c743,
- 0x22d743,
- 0x204702,
- 0x2e86c3,
- 0x201bc2,
- 0x29c743,
- 0x22d743,
- 0x204702,
- 0x22d183,
- 0x323ac3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x202243,
- 0x211003,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x202002,
- 0x21bd03,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x323ac3,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x238483,
- 0x2264c3,
- 0x2e9cc5,
- 0x221e42,
- 0x200882,
- 0x880c8,
- 0x1462d48,
- 0x21eb03,
- 0x225b41,
- 0x20fd41,
- 0x20c401,
- 0x20c041,
- 0x226fc1,
- 0x26f541,
- 0x252041,
- 0x225c41,
- 0x2d5901,
- 0x2ff8c1,
+ 0x3a9554,
+ 0x3a9a4b,
+ 0x3a9fca,
+ 0x3ab70a,
+ 0x3ab98b,
+ 0x3ad110,
+ 0x3ad511,
+ 0x3ae64a,
+ 0x3afa8d,
+ 0x3b018d,
+ 0x3b508b,
+ 0x3b5c46,
+ 0x221b83,
+ 0x73b76c03,
+ 0x37f706,
+ 0x292c85,
+ 0x396787,
+ 0x3215c6,
+ 0x1639f02,
+ 0x2b3809,
+ 0x32fd44,
+ 0x2e0bc8,
+ 0x24e103,
+ 0x2f6cc7,
+ 0x241b82,
+ 0x2b2c03,
+ 0x73e06c82,
+ 0x2cb006,
+ 0x2cc544,
+ 0x3b2e84,
+ 0x2616c3,
+ 0x2616c5,
+ 0x746c7282,
+ 0x74aae504,
+ 0x279747,
+ 0x1669e02,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x20abc3,
+ 0x204cc2,
+ 0x15f048,
+ 0x20d1c2,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x213e83,
+ 0x324156,
+ 0x325393,
+ 0x34f849,
+ 0x2957c8,
+ 0x364689,
+ 0x308b06,
+ 0x336f50,
+ 0x25c9d3,
+ 0x3072c8,
+ 0x344207,
+ 0x27e407,
+ 0x2475ca,
+ 0x373549,
+ 0x239789,
+ 0x29258b,
+ 0x367e06,
+ 0x314aca,
+ 0x2221c6,
+ 0x32f943,
+ 0x294985,
+ 0x22b888,
+ 0x2a920d,
+ 0x35ab0c,
+ 0x3a2107,
+ 0x379f8d,
+ 0x20c504,
+ 0x22ef0a,
+ 0x23064a,
+ 0x230b0a,
+ 0x20fe87,
+ 0x240387,
+ 0x243084,
+ 0x26cdc6,
+ 0x3aab84,
+ 0x2e26c8,
+ 0x2267c9,
+ 0x2b94c6,
+ 0x2b94c8,
+ 0x24c34d,
+ 0x2c9fc9,
+ 0x207d48,
+ 0x271647,
+ 0x2f8e8a,
+ 0x2539c6,
+ 0x2642c7,
+ 0x2c96c4,
+ 0x28e807,
+ 0x332eca,
+ 0x36f5ce,
+ 0x228fc5,
+ 0x28e70b,
+ 0x262089,
+ 0x2a8909,
+ 0x2129c7,
+ 0x29998a,
+ 0x225707,
+ 0x2ffd09,
+ 0x326b48,
+ 0x35dc4b,
+ 0x2e0405,
+ 0x38144a,
+ 0x223109,
+ 0x23908a,
+ 0x2ccb4b,
+ 0x383a0b,
+ 0x292315,
+ 0x2e6185,
+ 0x2716c5,
+ 0x2f424a,
+ 0x25980a,
+ 0x261e07,
+ 0x21d743,
+ 0x2a5c08,
+ 0x2d828a,
+ 0x223706,
+ 0x24ff09,
+ 0x26ebc8,
+ 0x2de404,
+ 0x242649,
+ 0x2c3608,
+ 0x2b1c07,
+ 0x20ce06,
+ 0x36f447,
+ 0x293cc7,
+ 0x242ac5,
+ 0x228e0c,
+ 0x258905,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x204ac3,
+ 0x20abc3,
+ 0x200383,
+ 0x2d0783,
+ 0x204ac3,
+ 0x24a843,
+ 0x200383,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x20d1c2,
+ 0x2000c2,
+ 0x230d42,
+ 0x202f02,
+ 0x202382,
+ 0x261e82,
+ 0x46d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x332ec3,
+ 0x204303,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x201383,
+ 0x15f048,
+ 0x32df04,
+ 0x260087,
+ 0x263d43,
+ 0x37aa84,
+ 0x214543,
+ 0x212a43,
+ 0x332ec3,
+ 0x13ecc7,
+ 0x204cc2,
+ 0x168883,
+ 0x5a0d1c2,
+ 0x8d54d,
+ 0x8d88d,
+ 0x230d42,
+ 0x964c4,
+ 0x200382,
+ 0x5e963c8,
+ 0xf39c4,
+ 0x15f048,
+ 0x14020c2,
+ 0x1509cc6,
+ 0x20e443,
+ 0x26ae03,
+ 0x66d0783,
+ 0x22ef04,
+ 0x6a31b83,
+ 0x6f32ec3,
+ 0x20a3c2,
+ 0x2964c4,
+ 0x204ac3,
+ 0x2fc883,
+ 0x201882,
+ 0x200383,
+ 0x21c802,
+ 0x2f8043,
+ 0x202602,
+ 0x203f83,
+ 0x26ec83,
+ 0x206d02,
+ 0x15f048,
+ 0x20e443,
+ 0x2fc883,
+ 0x201882,
+ 0x2f8043,
+ 0x202602,
+ 0x203f83,
+ 0x26ec83,
+ 0x206d02,
+ 0x2f8043,
+ 0x202602,
+ 0x203f83,
+ 0x26ec83,
+ 0x206d02,
+ 0x2d0783,
+ 0x368883,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204303,
+ 0x20fbc3,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x210582,
+ 0x21aa03,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x368883,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204ac3,
+ 0x200383,
+ 0x370145,
+ 0x217082,
+ 0x204cc2,
+ 0x15f048,
+ 0x1491b48,
+ 0x332ec3,
+ 0x2461c1,
+ 0x2096c1,
+ 0x202201,
+ 0x209441,
+ 0x24a5c1,
+ 0x27e081,
+ 0x24c0c1,
+ 0x2462c1,
+ 0x2e7481,
+ 0x30ed01,
0x200141,
0x200001,
- 0x880c8,
- 0x200481,
- 0x200741,
- 0x200081,
- 0x200c81,
- 0x2007c1,
- 0x200901,
- 0x200041,
- 0x204281,
- 0x2001c1,
+ 0x15f048,
+ 0x200701,
+ 0x200101,
0x2000c1,
- 0x200341,
- 0x200ac1,
- 0x201501,
- 0x2014c1,
- 0x204101,
- 0x200b81,
+ 0x201e41,
+ 0x200181,
+ 0x200941,
+ 0x200041,
+ 0x204ec1,
+ 0x200081,
+ 0x201481,
+ 0x200c01,
+ 0x2002c1,
+ 0x200381,
+ 0x200e81,
+ 0x21c2c1,
+ 0x2003c1,
+ 0x200201,
0x200241,
0x200a01,
- 0x2002c1,
- 0x200281,
- 0x204701,
- 0x20dec1,
- 0x200781,
- 0x200641,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x201502,
- 0x2264c3,
- 0x16e747,
- 0x131ac7,
- 0x1e1c6,
- 0x1736ca,
- 0x85c48,
- 0x53188,
- 0x53547,
- 0x50d06,
- 0xce6c5,
- 0x51f05,
- 0x161186,
- 0x155646,
- 0x224104,
- 0x322707,
- 0x880c8,
- 0x22d684,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x21eb03,
- 0x202243,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x221e42,
- 0x2be043,
- 0x2f5003,
- 0x20b283,
- 0x202e02,
- 0x248083,
- 0x204803,
- 0x206e83,
+ 0x2019c1,
+ 0x201a81,
+ 0x2005c1,
+ 0x2007c1,
+ 0x200cc1,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x200382,
+ 0x200383,
+ 0x13ecc7,
+ 0xfcc7,
+ 0x28b86,
+ 0x3dcca,
+ 0x8cc48,
+ 0x58dc8,
+ 0x59207,
+ 0x62a46,
+ 0xde185,
+ 0x63c85,
+ 0x177ac6,
+ 0x125886,
+ 0x24ae04,
+ 0x31cdc7,
+ 0x15f048,
+ 0x2da904,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x332ec3,
+ 0x204303,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x217082,
+ 0x2c8dc3,
+ 0x21fd43,
+ 0x200603,
+ 0x202942,
+ 0x251d43,
+ 0x205283,
+ 0x21e743,
0x200001,
- 0x207043,
- 0x26ff44,
- 0x324dc3,
- 0x30c683,
- 0x21dec3,
- 0x379b43,
- 0xaa2d183,
- 0x2374c4,
- 0x21de83,
- 0x232383,
- 0x2343c3,
- 0x234103,
- 0x208143,
- 0x2a3ec3,
- 0x30c603,
- 0x228103,
- 0x212103,
- 0x24c1c4,
- 0x23aa82,
- 0x252a43,
- 0x2585c3,
- 0x272bc3,
- 0x250b43,
- 0x24f8c3,
- 0x21eb03,
- 0x2db983,
- 0x220883,
- 0x201603,
- 0x210483,
- 0x2f2903,
- 0xaefe5c3,
- 0x385d43,
- 0x200983,
- 0x2348c3,
- 0x211003,
- 0x21e442,
- 0x286fc3,
- 0x238483,
- 0x16025c3,
- 0x217e83,
- 0x21da43,
- 0x29af43,
- 0x2264c3,
- 0x30e803,
- 0x21bd03,
- 0x2ad283,
- 0x2f6a83,
- 0x2e8883,
- 0x21d445,
- 0x215cc3,
- 0x2e88c3,
- 0x39c083,
- 0x218744,
- 0x25b343,
- 0x22e8c3,
- 0x277c03,
- 0x20b443,
- 0x221e42,
- 0x23a183,
- 0x2f9b84,
- 0x2ae9c4,
- 0x244843,
- 0x880c8,
- 0x882,
- 0x1002,
- 0x2e02,
- 0x1482,
- 0x2d42,
- 0x4c2,
- 0x44682,
- 0x202,
+ 0x203e43,
+ 0x225b04,
+ 0x37f1c3,
+ 0x318cc3,
+ 0x21c403,
+ 0x360383,
+ 0xaad0783,
+ 0x23a184,
+ 0x21c3c3,
+ 0x22f143,
+ 0x231b83,
+ 0x2318c3,
+ 0x23a943,
+ 0x2a85c3,
+ 0x318c43,
+ 0x233ec3,
+ 0x201e43,
+ 0x253f84,
+ 0x2abc02,
+ 0x258683,
+ 0x25eb43,
+ 0x27bfc3,
+ 0x262883,
+ 0x201dc3,
+ 0x332ec3,
+ 0x208803,
+ 0x209e43,
+ 0x204143,
+ 0x210203,
+ 0x2ff083,
+ 0xae30043,
+ 0x2b1083,
+ 0x2113c3,
+ 0x22d603,
+ 0x20fbc3,
+ 0x226302,
+ 0x201683,
+ 0x204ac3,
+ 0x160abc3,
+ 0x27d643,
+ 0x20ff03,
+ 0x216ec3,
+ 0x200383,
+ 0x3b37c3,
+ 0x21aa03,
+ 0x241f03,
+ 0x304f43,
+ 0x2f8203,
+ 0x30c845,
+ 0x2202c3,
+ 0x2f8243,
+ 0x35ed83,
+ 0x218c84,
+ 0x265203,
+ 0x311883,
+ 0x2d8fc3,
+ 0x201383,
+ 0x217082,
+ 0x23bd83,
+ 0x308484,
+ 0x22fec4,
+ 0x22a843,
+ 0x15f048,
+ 0x4cc2,
+ 0x1442,
+ 0x2942,
+ 0x5ac2,
+ 0x2302,
+ 0x702,
+ 0x4e242,
+ 0x1c2,
+ 0x8a42,
+ 0xc02,
+ 0xf302,
+ 0xb602,
+ 0x73fc2,
+ 0x4c82,
+ 0x61e82,
+ 0x17902,
+ 0x3cf82,
+ 0x54c2,
+ 0x18b82,
+ 0xfc2,
+ 0x682,
+ 0x1bb82,
0x1f82,
- 0x982,
- 0x43742,
- 0xe842,
- 0xe02,
- 0x7a82,
- 0x93d42,
- 0x6d42,
- 0x26282,
- 0x7442,
- 0x1f882,
- 0x8b02,
- 0x4b42,
- 0x1c882,
- 0x13c2,
- 0x17642,
- 0x1402,
- 0xdfc2,
- 0x6ec2,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x216582,
- 0x2264c3,
- 0xc22d183,
- 0x21eb03,
- 0x211003,
- 0x223b42,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x6c2,
- 0x202f02,
- 0x223f42,
- 0x880c8,
- 0x16582,
- 0x235f82,
- 0x203142,
- 0x23e682,
- 0x201642,
- 0x208382,
- 0x51f05,
- 0x2029c2,
- 0x202282,
- 0x203382,
- 0x205d02,
- 0x206d42,
- 0x385542,
+ 0xc4c2,
+ 0x1702,
+ 0x20c42,
+ 0xa42,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x20d1c2,
+ 0x200383,
+ 0xc2d0783,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x20dc42,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x6c82,
+ 0x2031c2,
+ 0x24ac42,
+ 0x15f048,
+ 0xd1c2,
+ 0x233482,
+ 0x208842,
+ 0x22f942,
+ 0x204182,
+ 0x209282,
+ 0x63c85,
+ 0x204702,
0x201882,
- 0x227642,
- 0x16e747,
- 0x119d4d,
- 0xeafc9,
- 0x47b8b,
- 0xd1e88,
- 0x13bc89,
- 0x21eb03,
- 0x880c8,
- 0x880c8,
- 0x53e06,
- 0x200882,
- 0x224104,
- 0x216582,
- 0x22d183,
- 0x201a42,
- 0x2343c3,
- 0x201f82,
- 0x22d684,
- 0x202243,
- 0x209782,
- 0x238483,
- 0x201502,
- 0x2264c3,
- 0x241f86,
- 0x30d40f,
- 0x6fef43,
- 0x880c8,
- 0x216582,
- 0x211cc3,
- 0x21eb03,
- 0x211003,
- 0x1568ecb,
- 0x16e747,
- 0x216582,
- 0x22d183,
- 0x21eb03,
- 0x238483,
- 0x200882,
- 0x201102,
- 0x2093c2,
- 0xfa2d183,
- 0x23e4c2,
- 0x2343c3,
- 0x2475c2,
- 0x227982,
- 0x21eb03,
- 0x21c2c2,
- 0x301dc2,
- 0x2a7fc2,
- 0x201142,
- 0x289f82,
- 0x206982,
+ 0x211f82,
+ 0x2034c2,
+ 0x217902,
+ 0x384982,
+ 0x201ac2,
+ 0x245742,
+ 0x13ecc7,
+ 0x169a8d,
+ 0xde209,
+ 0x56bcb,
+ 0xe3888,
+ 0x55109,
+ 0x332ec3,
+ 0x15f048,
+ 0x15f048,
+ 0x59b46,
+ 0x204cc2,
+ 0x24ae04,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x2000c2,
+ 0x231b83,
+ 0x208a42,
+ 0x2da904,
+ 0x204303,
+ 0x2513c2,
+ 0x204ac3,
+ 0x200382,
+ 0x200383,
+ 0x2716c6,
+ 0x31c0cf,
+ 0x70d8c3,
+ 0x15f048,
+ 0x20d1c2,
+ 0x2135c3,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x155afcb,
+ 0xde548,
+ 0x14ff507,
+ 0x13ecc7,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x332ec3,
+ 0x204ac3,
+ 0x204cc2,
0x200902,
- 0x205e82,
- 0x26a242,
- 0x204d42,
- 0x2ad802,
- 0x230cc2,
- 0x225a02,
- 0x228f02,
- 0x211003,
- 0x203042,
- 0x238483,
- 0x2425c2,
- 0x267c02,
- 0x2264c3,
- 0x248102,
- 0x217642,
- 0x20a442,
- 0x202482,
- 0x2168c2,
- 0x2d29c2,
- 0x210442,
- 0x242d42,
- 0x221bc2,
- 0x301e0a,
- 0x34600a,
- 0x38074a,
- 0x3b4682,
- 0x20d802,
- 0x23c282,
- 0xff49009,
- 0x103a418a,
- 0x1042fe87,
- 0xc002,
- 0x1a418a,
- 0x245dc4,
- 0x10e2d183,
- 0x2343c3,
- 0x247344,
- 0x21eb03,
- 0x201604,
- 0x202243,
- 0x211003,
- 0x238483,
- 0x2025c3,
- 0x2264c3,
- 0x215cc3,
- 0x223ec3,
- 0x880c8,
- 0x1450c84,
- 0x50505,
- 0x4e80a,
- 0x109842,
- 0x18b406,
- 0x162d51,
- 0x11749009,
- 0x163187,
- 0x4802,
- 0x1aa80a,
- 0xdb7c7,
- 0x880c8,
- 0xfd948,
- 0xe707,
- 0x1281c44b,
- 0x15802,
- 0x1a6707,
- 0x1b1a4a,
- 0x10728f,
- 0x131b4f,
- 0x1dec2,
- 0x16582,
- 0xa3e08,
- 0xea70a,
- 0x167408,
+ 0x207f42,
+ 0xfad0783,
+ 0x2416c2,
+ 0x231b83,
+ 0x2101c2,
+ 0x22ad02,
+ 0x332ec3,
+ 0x2630c2,
+ 0x255302,
+ 0x2ae4c2,
+ 0x203742,
+ 0x291e02,
+ 0x209902,
+ 0x200b82,
+ 0x274842,
+ 0x258142,
+ 0x251b02,
+ 0x2b36c2,
+ 0x242602,
+ 0x246082,
+ 0x263c42,
+ 0x20fbc3,
+ 0x205f02,
+ 0x204ac3,
+ 0x231302,
+ 0x27de02,
+ 0x200383,
+ 0x251dc2,
+ 0x20c4c2,
+ 0x209f42,
+ 0x200b42,
+ 0x20c842,
+ 0x2e4742,
+ 0x220382,
+ 0x24d082,
+ 0x234f42,
+ 0x310c8a,
+ 0x347d0a,
+ 0x37e80a,
+ 0x3b5dc2,
+ 0x2046c2,
+ 0x204e82,
+ 0xff4f589,
+ 0x10324d0a,
+ 0x15926c7,
+ 0x1410c43,
+ 0x243d0,
+ 0x9402,
+ 0x24fe44,
+ 0x10ad0783,
+ 0x231b83,
+ 0x251304,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204303,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x20abc3,
+ 0x200383,
+ 0x2202c3,
+ 0x24abc3,
+ 0x15f048,
+ 0x14629c4,
+ 0x614c5,
+ 0x5f88a,
+ 0x1168c2,
+ 0x1a03c6,
+ 0x102d11,
+ 0x1134f589,
+ 0x61548,
+ 0x82a08,
+ 0x5e887,
0xf82,
- 0x10700f,
- 0x124e4b,
- 0x2988,
- 0x16e847,
- 0x16a8a,
- 0xae14b,
- 0x112089,
- 0x173507,
- 0xf424c,
- 0x10ec87,
- 0xd060a,
- 0x132d48,
- 0x8e28e,
- 0x553ce,
- 0xdb60b,
- 0x110d8b,
- 0xead0b,
- 0x1e1c9,
- 0x1fb8b,
- 0x2398d,
- 0x260cb,
- 0x2708d,
- 0x2c90d,
- 0x2ec8a,
- 0xae80b,
- 0xc6fcb,
- 0xe82c5,
- 0x10a710,
- 0x8128f,
- 0xb74f,
- 0x2a24d,
- 0x6fd50,
- 0xd82,
- 0x12fa2488,
- 0x131948,
- 0x132e4bc5,
- 0x4668b,
- 0x52088,
- 0x110f4a,
- 0x58d89,
- 0x60587,
- 0x608c7,
- 0x60a87,
- 0x611c7,
- 0x629c7,
- 0x62f47,
- 0x636c7,
- 0x63d47,
- 0x64307,
- 0x644c7,
- 0x66087,
- 0x66247,
- 0x66407,
- 0x665c7,
- 0x668c7,
- 0x66e07,
- 0x67a47,
- 0x67f07,
- 0x68707,
- 0x69207,
- 0x693c7,
- 0x699c7,
- 0x69e87,
- 0x6a087,
- 0x6a347,
- 0x6a507,
- 0x6a6c7,
- 0x6ac07,
- 0x6b4c7,
- 0x6bf87,
- 0x6c687,
- 0x6c947,
- 0x6ce07,
- 0x6cfc7,
- 0x6d347,
- 0x6e3c7,
- 0x6ea07,
- 0x6ee07,
- 0x6efc7,
- 0x6f187,
- 0x6f5c7,
- 0x70307,
- 0x70607,
- 0x70c07,
- 0x70dc7,
- 0x71147,
- 0x71587,
- 0xd382,
- 0x33d8a,
- 0xf9dc7,
- 0x134c87cb,
- 0x14c87d6,
- 0x18351,
- 0xdfb8a,
- 0xa3c8a,
- 0x53e06,
- 0xc114b,
- 0xb2c2,
- 0x31ad1,
- 0x959c9,
- 0x90ac9,
- 0x5e82,
- 0x9c34a,
- 0xa5449,
- 0xa5c8f,
- 0xa688e,
- 0xa7188,
- 0xf1c2,
- 0x169a89,
- 0x8498e,
- 0xac64c,
- 0xd400f,
- 0x194a8e,
- 0x1098c,
- 0x15309,
- 0x16451,
- 0x19a48,
- 0x2bd52,
- 0x2e5cd,
- 0x393cd,
- 0x13ff8b,
- 0x179d95,
- 0x33c49,
- 0x5488a,
- 0x58749,
- 0x5fe90,
- 0x60f0b,
- 0x6e54f,
- 0x71d0b,
- 0x756cc,
- 0x787d0,
- 0x8660a,
- 0x86e8d,
- 0x14ea0e,
- 0x18004a,
- 0x8c7cc,
- 0x8fa54,
- 0x95651,
- 0x98f8b,
- 0x9b54f,
- 0xab6cd,
- 0xabfce,
- 0x12c10c,
- 0x15710c,
- 0xdc8cb,
- 0xeef8e,
- 0xfb250,
- 0x10938b,
- 0x11270d,
- 0x15f28f,
- 0xb504c,
- 0xb824e,
- 0xb8a51,
- 0xba84c,
- 0x1362c7,
- 0x11c60d,
- 0xbe94c,
- 0xc4d90,
- 0xd35cd,
- 0xe7847,
- 0xec4d0,
- 0xf0688,
- 0xf124b,
- 0x17318f,
- 0x2b848,
- 0xdfd8d,
- 0x1763d0,
- 0x13aaf9c6,
- 0xb0bc3,
- 0x9682,
- 0x2cd09,
- 0x551ca,
- 0xf9bc6,
- 0x13cd5389,
- 0x124c3,
- 0x109f11,
- 0x9f89,
- 0xcd5c7,
- 0x10710b,
- 0xd2d10,
- 0xd31cc,
- 0xd47c5,
- 0x11ab08,
- 0x19be4a,
- 0x122b07,
- 0x25c2,
- 0x5160a,
- 0x1694c9,
- 0xa62ca,
- 0x1abe8f,
- 0x4084b,
- 0x10760c,
- 0x1078d2,
- 0xb5485,
- 0x15d98a,
- 0x142e1fc5,
- 0x19900c,
- 0x1157c3,
- 0x185542,
- 0xe8e4a,
- 0x108548,
- 0x163407,
- 0x4b42,
- 0x7982,
- 0x1bc2,
- 0x129e10,
- 0x1402,
- 0x3074f,
- 0x161186,
- 0x1113ce,
- 0xe3a4b,
- 0x180248,
- 0xc9a89,
- 0x17e4d2,
- 0x178b8d,
- 0x45e88,
- 0x47a49,
- 0x485cd,
- 0x4a189,
- 0x4a64b,
- 0x4ac08,
- 0x4e648,
- 0x53f48,
- 0x559c9,
- 0x55bca,
- 0x57f4c,
- 0xe31ca,
- 0xf6ac7,
- 0xdfcd,
- 0xeb88b,
- 0x9eb0c,
- 0x18b610,
- 0x3282,
- 0xc570d,
- 0x6202,
- 0x33c2,
- 0xf6a0a,
- 0xdfa8a,
- 0xe5e4b,
- 0xc718c,
- 0xfd6ce,
- 0x165d0d,
- 0xf3dc8,
- 0x6c2,
- 0x11a0c0ce,
- 0x11c2fe87,
- 0x121aa0c9,
- 0x11583,
- 0x127117cc,
- 0xc002,
- 0x50111,
- 0xc011,
- 0xa1091,
- 0x81ed1,
- 0x11170f,
- 0x11dfcc,
- 0x121acd,
- 0x123f0d,
- 0x142615,
- 0x14b18c,
- 0x159590,
- 0xfa8c,
- 0x5274c,
- 0x47109,
- 0xc002,
- 0x501ce,
- 0xc0ce,
- 0xa114e,
- 0x81f8e,
- 0x1117cc,
- 0x11e089,
- 0x14b249,
- 0x14280d,
- 0xfb49,
- 0x52809,
- 0x1267c3,
- 0x940c3,
- 0xc002,
- 0x162d45,
- 0x1aa804,
- 0xdf704,
- 0x127244,
- 0x17f904,
- 0x17c084,
- 0x163184,
- 0x144bdc3,
- 0x140de83,
- 0x19fd04,
- 0x1573dc3,
- 0xd82,
- 0x165d03,
- 0x200882,
- 0x216582,
- 0x201a42,
- 0x206ac2,
- 0x201f82,
- 0x201502,
- 0x201bc2,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201603,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x238483,
- 0x2264c3,
- 0x1d003,
- 0x21eb03,
- 0x200882,
- 0x323ac3,
- 0x15e2d183,
- 0x330d47,
- 0x21eb03,
- 0x332683,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x24690a,
- 0x241f85,
- 0x21bd03,
- 0x203e42,
- 0x880c8,
- 0x880c8,
- 0x16582,
- 0x113682,
- 0x1a6845,
- 0x880c8,
- 0x2d183,
- 0x77947,
- 0x1161cf,
- 0xf9c44,
- 0x11220a,
- 0xac287,
- 0xf78a,
- 0x93e8a,
- 0xa660a,
- 0xf9bc6,
- 0x27ca,
- 0xccd,
- 0x123ac3,
- 0x880c8,
- 0x16582,
- 0x47344,
- 0x67683,
- 0xe9cc5,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x204803,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x290c83,
- 0x223ec3,
- 0x204803,
- 0x224104,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x232dc3,
- 0x22d183,
- 0x2343c3,
- 0x206ac3,
- 0x211cc3,
- 0x21eb03,
- 0x201604,
- 0x36b683,
- 0x2348c3,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x21bd03,
- 0x3b0343,
- 0x1822d183,
- 0x2343c3,
- 0x244d43,
- 0x21eb03,
- 0x275803,
- 0x2348c3,
- 0x2264c3,
- 0x207443,
- 0x27f5c4,
- 0x880c8,
- 0x18a2d183,
- 0x2343c3,
- 0x2a7243,
- 0x21eb03,
- 0x211003,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x220703,
- 0x880c8,
- 0x1922d183,
- 0x2343c3,
- 0x211cc3,
- 0x2025c3,
- 0x2264c3,
- 0x880c8,
- 0x142fe87,
- 0x323ac3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x16e747,
- 0x176c84,
- 0x1462d48,
- 0xa7dcd,
- 0x3256c5,
- 0x880c8,
- 0x742,
- 0x35bc3,
- 0xe6786,
- 0x307e48,
- 0x3afd07,
- 0x224104,
- 0x355346,
- 0x359446,
- 0x880c8,
- 0x301043,
- 0x20b149,
- 0x2b46d5,
- 0xb46df,
- 0x22d183,
- 0x32f8d2,
- 0xfea86,
- 0x13af45,
- 0x110f4a,
- 0x58d89,
- 0x32f68f,
- 0x22d684,
- 0x331145,
- 0x2f26d0,
- 0x3aaf87,
- 0x2025c3,
- 0x32d208,
- 0x2aeeca,
- 0x2014c4,
- 0x2e1a03,
- 0x241f86,
- 0x203e42,
- 0x38660b,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x2e6a83,
- 0x216582,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x332683,
- 0x203043,
- 0x2264c3,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x238483,
- 0x2264c3,
- 0x200882,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x224104,
- 0x22d183,
- 0x2343c3,
- 0x307b04,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x220883,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x251283,
- 0x2efc3,
- 0x132683,
- 0x238483,
- 0x2264c3,
- 0x301e0a,
- 0x31ec09,
- 0x33e6cb,
- 0x33ed4a,
- 0x34600a,
- 0x3543cb,
- 0x372d8a,
- 0x37acca,
- 0x38074a,
- 0x3809cb,
- 0x39bb89,
- 0x39d94a,
- 0x39e38b,
- 0x3a9bcb,
- 0x3b2c8a,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x37549,
- 0x880c8,
- 0x22d183,
- 0x260584,
- 0x214a02,
- 0x212444,
- 0x226bc5,
- 0x204803,
- 0x224104,
- 0x22d183,
- 0x2374c4,
- 0x2343c3,
- 0x247344,
- 0x22d684,
- 0x201604,
- 0x2348c3,
- 0x238483,
- 0x2264c3,
- 0x28fb85,
- 0x232dc3,
- 0x21bd03,
- 0x25b743,
- 0x252dc4,
- 0x250bc4,
- 0x26dfc5,
- 0x880c8,
- 0x2f88c4,
- 0x208606,
- 0x283c04,
- 0x216582,
- 0x360307,
- 0x249c07,
- 0x2455c4,
- 0x257a05,
- 0x2d37c5,
- 0x2a9c05,
- 0x201604,
- 0x318348,
- 0x36ed86,
- 0x2dbb08,
- 0x236f45,
- 0x2cf145,
- 0x240584,
- 0x2264c3,
- 0x2e26c4,
- 0x353586,
- 0x242083,
- 0x252dc4,
- 0x262c45,
- 0x2cfbc4,
- 0x365b84,
- 0x203e42,
- 0x245206,
- 0x392446,
- 0x2f56c5,
- 0x200882,
- 0x323ac3,
- 0x1f216582,
- 0x2358c4,
- 0x201f82,
- 0x211003,
- 0x209f82,
- 0x238483,
- 0x201502,
- 0x217643,
- 0x223ec3,
- 0x880c8,
- 0x880c8,
- 0x21eb03,
- 0x200882,
- 0x1fe16582,
- 0x21eb03,
- 0x266383,
- 0x36b683,
- 0x31f984,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x200882,
- 0x20616582,
- 0x22d183,
- 0x238483,
- 0x2264c3,
- 0x4b42,
- 0x2019c2,
- 0x221e42,
- 0x332683,
- 0x2db083,
- 0x200882,
- 0x880c8,
- 0x16e747,
- 0x216582,
- 0x2343c3,
- 0x247344,
- 0x208f43,
- 0x21eb03,
- 0x220883,
- 0x211003,
- 0x238483,
- 0x21ab43,
- 0x2264c3,
- 0x220683,
- 0x1244d3,
- 0x12f214,
- 0x16e747,
- 0x15686,
- 0x1e1c6,
- 0x52fc7,
- 0x9f049,
- 0x2654a,
- 0x85b0d,
- 0x119a4c,
- 0x29e8a,
- 0x51f05,
- 0x18bec8,
- 0x161186,
- 0x155646,
- 0x200d82,
- 0xde40c,
- 0x1aa9c7,
- 0x24d11,
- 0x22d183,
- 0xd0585,
- 0x1b4284,
- 0x18346,
- 0x19f046,
- 0x8a24a,
- 0xacec3,
- 0x9f005,
- 0xce83,
- 0xc120c,
- 0xe5408,
- 0x1ad408,
- 0xa0288,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x200882,
- 0x216582,
- 0x21eb03,
- 0x2082c2,
- 0x238483,
- 0x2264c3,
- 0x217643,
- 0x35e48f,
- 0x35e84e,
- 0x880c8,
- 0x22d183,
- 0x429c7,
- 0x2343c3,
- 0x21eb03,
- 0x202243,
- 0x238483,
- 0x2264c3,
- 0x220003,
- 0x36b047,
- 0x204642,
- 0x2a9849,
- 0x201002,
- 0x32a10b,
- 0x28c14a,
- 0x2a4209,
- 0x201902,
- 0x250e06,
- 0x248f95,
- 0x32a255,
- 0x24de93,
- 0x32a7d3,
- 0x2056c2,
- 0x214605,
- 0x27ff4c,
- 0x219e0b,
- 0x269005,
- 0x201482,
- 0x2040c2,
- 0x377506,
- 0x204802,
- 0x24eb06,
- 0x332ecd,
- 0x36288c,
- 0x30a784,
- 0x2009c2,
- 0x219f02,
- 0x22c108,
- 0x202d42,
- 0x29d5c6,
- 0x3345c4,
- 0x249155,
- 0x24e013,
- 0x20a583,
- 0x34868a,
- 0x30e547,
- 0x2e6089,
- 0x20f507,
- 0x24f882,
+ 0x19a18a,
+ 0x2ac47,
+ 0x15f048,
+ 0x10b708,
+ 0xbac7,
+ 0x16c1b74b,
+ 0x1082,
+ 0x15de87,
+ 0xdb4a,
+ 0x5e58f,
+ 0xfd4f,
+ 0x1c402,
+ 0xd1c2,
+ 0xa8508,
+ 0x185b0a,
+ 0x1681c8,
+ 0x3b02,
+ 0x5e30f,
+ 0xa3d4b,
+ 0x1672c8,
+ 0x13edc7,
+ 0x15104a,
+ 0x2f64b,
+ 0x11dd09,
+ 0x150f47,
+ 0x100c4c,
+ 0x1b3c47,
+ 0x18d18a,
+ 0x94b88,
+ 0x195a8e,
+ 0x28b8e,
+ 0x2aa8b,
+ 0x2b2cb,
+ 0x2d3cb,
+ 0x2e209,
+ 0x3558b,
+ 0x4a68d,
+ 0xe984b,
+ 0xec8cd,
+ 0xecc4d,
+ 0x18274a,
+ 0x2fd0b,
+ 0x3688b,
+ 0x42305,
+ 0x14243d0,
+ 0x125d8f,
+ 0x1264cf,
+ 0x48dcd,
+ 0x25910,
+ 0x1742,
+ 0x17203988,
+ 0xfb48,
+ 0x176f4745,
+ 0x505cb,
+ 0x117050,
+ 0x57488,
+ 0x2b48a,
+ 0x5f4c9,
+ 0x695c7,
+ 0x69907,
+ 0x69ac7,
+ 0x6c287,
+ 0x6d307,
+ 0x6dd07,
+ 0x6e487,
+ 0x6e8c7,
+ 0x6f487,
+ 0x6f787,
+ 0x6ffc7,
+ 0x70187,
+ 0x70347,
+ 0x70507,
+ 0x70807,
+ 0x70c47,
+ 0x718c7,
+ 0x71d87,
+ 0x729c7,
+ 0x72f07,
+ 0x730c7,
+ 0x73807,
+ 0x73e87,
+ 0x74087,
+ 0x74347,
+ 0x74507,
+ 0x746c7,
+ 0x75047,
+ 0x754c7,
+ 0x75987,
+ 0x76147,
+ 0x76407,
+ 0x76bc7,
+ 0x76d87,
+ 0x77107,
+ 0x77d07,
+ 0x78987,
+ 0x78d87,
+ 0x78f47,
+ 0x79107,
+ 0x79547,
+ 0x7a307,
+ 0x7a607,
+ 0x7a907,
+ 0x7aac7,
+ 0x7ae47,
+ 0x7b387,
+ 0xa9c2,
+ 0x4c94a,
+ 0x16dc87,
+ 0x178d528b,
+ 0x14d5296,
+ 0x19151,
+ 0xf080a,
+ 0xa838a,
+ 0x59b46,
+ 0xd2acb,
+ 0x642,
+ 0x2e891,
+ 0x94609,
+ 0x9a109,
+ 0x74842,
+ 0xa4f4a,
+ 0xaa689,
+ 0xab24f,
+ 0xaca4e,
+ 0xad708,
+ 0x18d82,
+ 0x15da89,
+ 0x18b88e,
+ 0xfd08c,
+ 0xf254f,
+ 0x146ce,
+ 0x23b4c,
+ 0x2ccc9,
+ 0x2db51,
+ 0x465c8,
+ 0x482d2,
+ 0x49fcd,
+ 0x82bcd,
+ 0x19090b,
+ 0x3d2d5,
+ 0x4c809,
+ 0x4ec0a,
+ 0x4f489,
+ 0x5ecd0,
+ 0x72c4b,
+ 0x79f4f,
+ 0x7c48b,
+ 0x8340c,
+ 0x84610,
+ 0x8894a,
+ 0x8dd0d,
+ 0x16618e,
+ 0x1ae00a,
+ 0x8f7cc,
+ 0x93994,
+ 0x94291,
+ 0xa494b,
+ 0xa578f,
+ 0xa7bcd,
+ 0xac3ce,
+ 0xb1acc,
+ 0xb220c,
+ 0xdc90b,
+ 0xdcc0e,
+ 0x122110,
+ 0x11640b,
+ 0x17a64d,
+ 0x1af38f,
+ 0xb798c,
+ 0xb934e,
+ 0xbb311,
+ 0xc3ccc,
+ 0xc5a47,
+ 0x15e58d,
+ 0x12b50c,
+ 0x14be50,
+ 0xd1b4d,
+ 0xd8e47,
+ 0xe2350,
+ 0xfa008,
+ 0xfb08b,
+ 0x150bcf,
+ 0x17de88,
+ 0xf0a0d,
+ 0x181d50,
+ 0x17fb1846,
+ 0xb6003,
+ 0x1b02,
+ 0xd0309,
+ 0x5ac0a,
+ 0x1084c6,
+ 0x180dff49,
+ 0x13203,
+ 0xdab91,
+ 0xdafc9,
+ 0xdc047,
+ 0x5e40b,
+ 0xe4a90,
+ 0xe4f4c,
+ 0xe5385,
+ 0x126cc8,
+ 0x19dc0a,
+ 0x129607,
+ 0x1002,
+ 0x12464a,
+ 0x25e49,
+ 0x3a20a,
+ 0x8eacf,
+ 0x44f4b,
+ 0x1b280c,
+ 0x1b2ad2,
+ 0xaa085,
+ 0x2124a,
+ 0x186f2fc5,
+ 0x17698c,
+ 0x121203,
+ 0x184982,
+ 0xf86ca,
+ 0x96b88,
+ 0xeca88,
+ 0x14a587,
+ 0xd42,
+ 0x2602,
+ 0x3f390,
+ 0x1702,
+ 0x1aa2cf,
+ 0x177ac6,
+ 0x301ce,
+ 0xe7fcb,
+ 0x1ae208,
+ 0xd6c09,
+ 0x17cd92,
+ 0x7c0d,
+ 0x56608,
+ 0x56a89,
+ 0x5700d,
+ 0x59c89,
+ 0x5a28b,
+ 0x5b088,
+ 0x5f6c8,
+ 0x68bc8,
+ 0x68e49,
+ 0x6904a,
+ 0x6c8cc,
+ 0xe5d0a,
+ 0x104f87,
+ 0x16b2cd,
+ 0xf910b,
+ 0x12fb4c,
+ 0x1a05d0,
+ 0x6902,
+ 0x1968cd,
+ 0x16c2,
+ 0x11fc2,
+ 0x104eca,
+ 0xf070a,
+ 0xf6bcb,
+ 0x36a4c,
+ 0x10b48e,
+ 0x21ccd,
+ 0x1ab488,
+ 0x6c82,
+ 0x1166118e,
+ 0x11f6a18e,
+ 0x1266c00a,
+ 0x12ed0a0e,
+ 0x137156ce,
+ 0x13f2a00c,
+ 0x15926c7,
+ 0x15926c9,
+ 0x1410c43,
+ 0x14731e8c,
+ 0x14f3a009,
+ 0x1409402,
+ 0x610d1,
+ 0x16a0d1,
+ 0x6bf4d,
+ 0xd0951,
+ 0x11b1d1,
+ 0x129f4f,
+ 0x131dcf,
+ 0x139f4c,
+ 0x14a94d,
+ 0x18d555,
+ 0x1ace0c,
+ 0x1b41cc,
+ 0x1b5850,
+ 0x940c,
+ 0x5838c,
+ 0xedc19,
+ 0x1a6719,
+ 0x115419,
+ 0x15c754,
+ 0x17f854,
+ 0x198594,
+ 0x19ae14,
+ 0x1a9054,
+ 0x1577fb09,
+ 0x15d98849,
+ 0x167b4289,
+ 0x11b6b089,
+ 0x9402,
+ 0x1236b089,
+ 0x9402,
+ 0xedc0a,
+ 0x9402,
+ 0x12b6b089,
+ 0x9402,
+ 0xedc0a,
+ 0x9402,
+ 0x1336b089,
+ 0x9402,
+ 0x13b6b089,
+ 0x9402,
+ 0x1436b089,
+ 0x9402,
+ 0xedc0a,
+ 0x9402,
+ 0x14b6b089,
+ 0x9402,
+ 0xedc0a,
+ 0x9402,
+ 0x1536b089,
+ 0x9402,
+ 0x15b6b089,
+ 0x9402,
+ 0x1636b089,
+ 0x9402,
+ 0x16b6b089,
+ 0x9402,
+ 0xedc0a,
+ 0x9402,
+ 0x102d05,
+ 0x19a184,
+ 0x11d644,
+ 0x1a4884,
+ 0xbfc04,
+ 0x2144,
+ 0x5e884,
+ 0x1482283,
+ 0x1420183,
+ 0xffd84,
+ 0x1542b83,
+ 0x1742,
+ 0x21cc3,
+ 0x204cc2,
+ 0x20d1c2,
+ 0x2000c2,
+ 0x2041c2,
+ 0x208a42,
+ 0x200382,
+ 0x202602,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204143,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x204ac3,
+ 0x200383,
+ 0x3b943,
+ 0x332ec3,
+ 0x204cc2,
+ 0x368883,
+ 0x1a2d0783,
+ 0x20ef47,
+ 0x332ec3,
+ 0x205d83,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x25084a,
+ 0x2716c5,
+ 0x21aa03,
+ 0x205bc2,
+ 0x15f048,
+ 0x15f048,
+ 0xd1c2,
+ 0x11f0c2,
+ 0x15dfc5,
+ 0x15f048,
+ 0xd0783,
+ 0x1ae3db07,
+ 0xcfd46,
+ 0x1b1acd05,
+ 0xcfe07,
+ 0xa54a,
+ 0xa408,
+ 0xb747,
+ 0x5f2c8,
+ 0x18c407,
+ 0xed30f,
+ 0x3ab07,
+ 0x165bc6,
+ 0x117050,
+ 0x122f0f,
+ 0x108544,
+ 0x1b4cfece,
+ 0xafd0c,
+ 0x11de8a,
+ 0xac687,
+ 0x12d54a,
+ 0x60989,
+ 0xc2f4a,
+ 0x77a8a,
+ 0x1084c6,
+ 0xac74a,
+ 0x11a58a,
+ 0x154009,
+ 0xda448,
+ 0xda746,
+ 0xde74d,
+ 0xb9905,
+ 0x5a107,
+ 0x16df94,
+ 0xfe58b,
+ 0x16710a,
+ 0xa8bcd,
+ 0x28b83,
+ 0x28b83,
+ 0x28b86,
+ 0x28b83,
+ 0x168883,
+ 0x15f048,
+ 0xd1c2,
+ 0x51304,
+ 0x8cdc3,
+ 0x170145,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x205283,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x29a2c3,
+ 0x24abc3,
+ 0x205283,
+ 0x24ae04,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x209103,
+ 0x2d0783,
+ 0x231b83,
+ 0x2041c3,
+ 0x2135c3,
+ 0x332ec3,
+ 0x2964c4,
+ 0x23a0c3,
+ 0x22d603,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x21aa03,
+ 0x38c743,
+ 0x1d2d0783,
+ 0x231b83,
+ 0x2c3ec3,
+ 0x332ec3,
+ 0x2075c3,
+ 0x22d603,
+ 0x200383,
+ 0x2054c3,
+ 0x343c44,
+ 0x15f048,
+ 0x1dad0783,
+ 0x231b83,
+ 0x2ad7c3,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x21d7c3,
+ 0x15f048,
+ 0x1e2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x20abc3,
+ 0x200383,
+ 0x15f048,
+ 0x15926c7,
+ 0x368883,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x13ecc7,
+ 0x16e1cb,
+ 0xdb3c4,
+ 0xb9905,
+ 0x1491b48,
+ 0xae2cd,
+ 0x1f68a405,
+ 0x192c4,
+ 0x1a5c3,
+ 0x367fc5,
+ 0x15f048,
+ 0x1d202,
+ 0x2803,
+ 0xf7286,
+ 0x32f448,
+ 0x304507,
+ 0x24ae04,
+ 0x3b3006,
+ 0x3b5706,
+ 0x15f048,
+ 0x310683,
+ 0x2384c9,
+ 0x2bdad5,
+ 0xbdadf,
+ 0x2d0783,
+ 0x39a9d2,
+ 0xf5806,
+ 0x10cfc5,
+ 0x2b48a,
+ 0x5f4c9,
+ 0x39a78f,
+ 0x2da904,
+ 0x20f345,
+ 0x2fee50,
+ 0x2959c7,
+ 0x20abc3,
+ 0x2842c8,
+ 0x1257c6,
+ 0x2b400a,
+ 0x200e84,
+ 0x2f2a03,
+ 0x2716c6,
+ 0x205bc2,
+ 0x26b44b,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x2f74c3,
+ 0x20d1c2,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x205d83,
+ 0x223103,
+ 0x200383,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x204ac3,
+ 0x200383,
+ 0x204cc2,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x24ae04,
+ 0x2d0783,
+ 0x231b83,
+ 0x222044,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x209e43,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x262fc3,
+ 0x1e303,
+ 0x5d83,
+ 0x204ac3,
+ 0x200383,
+ 0x310c8a,
+ 0x32a949,
+ 0x34184b,
+ 0x341f8a,
+ 0x347d0a,
+ 0x356e8b,
+ 0x37300a,
+ 0x37914a,
+ 0x37e80a,
+ 0x37ea8b,
+ 0x39d949,
+ 0x39f84a,
+ 0x39fbcb,
+ 0x3a9d0b,
+ 0x3b4a8a,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x10c9c9,
+ 0x15f048,
+ 0x2d0783,
+ 0x2695c4,
+ 0x200c82,
+ 0x213184,
+ 0x3ac705,
+ 0x205283,
+ 0x24ae04,
+ 0x2d0783,
+ 0x23a184,
+ 0x231b83,
+ 0x251304,
+ 0x2da904,
+ 0x2964c4,
+ 0x22d603,
+ 0x204ac3,
+ 0x200383,
+ 0x293ac5,
+ 0x209103,
+ 0x21aa03,
+ 0x22c6c3,
+ 0x258a04,
+ 0x262904,
+ 0x35d705,
+ 0x15f048,
+ 0x306e44,
+ 0x20e546,
+ 0x28a8c4,
+ 0x20d1c2,
+ 0x361ac7,
+ 0x253587,
+ 0x24f0c4,
+ 0x25d8c5,
+ 0x2d1d45,
+ 0x2b0405,
+ 0x2964c4,
+ 0x23cfc8,
+ 0x33f306,
+ 0x311f48,
+ 0x227b05,
+ 0x2e0405,
+ 0x377004,
+ 0x200383,
+ 0x2f39c4,
+ 0x355f46,
+ 0x2717c3,
+ 0x258a04,
+ 0x291a45,
+ 0x363644,
+ 0x234e84,
+ 0x205bc2,
+ 0x25e206,
+ 0x392206,
+ 0x3022c5,
+ 0x204cc2,
+ 0x368883,
+ 0x24e0d1c2,
+ 0x232dc4,
+ 0x208a42,
+ 0x20fbc3,
+ 0x25e402,
+ 0x204ac3,
+ 0x200382,
+ 0x213e83,
+ 0x24abc3,
+ 0x15f048,
+ 0x15f048,
+ 0x332ec3,
+ 0x204cc2,
+ 0x25a0d1c2,
+ 0x332ec3,
+ 0x2702c3,
+ 0x23a0c3,
+ 0x32bc44,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x204cc2,
+ 0x2620d1c2,
+ 0x2d0783,
+ 0x204ac3,
+ 0x200383,
+ 0x682,
+ 0x2044c2,
+ 0x217082,
+ 0x205d83,
+ 0x2ec383,
+ 0x204cc2,
+ 0x15f048,
+ 0x13ecc7,
+ 0x20d1c2,
+ 0x231b83,
+ 0x251304,
+ 0x202743,
+ 0x332ec3,
+ 0x209e43,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x2183c3,
+ 0x200383,
+ 0x21d743,
+ 0x1286d3,
+ 0x12cb54,
+ 0x13ecc7,
+ 0x1fd86,
+ 0x5ae0b,
+ 0x28b86,
+ 0x58c07,
+ 0x130089,
+ 0xe9cca,
+ 0x8cb0d,
+ 0x16978c,
+ 0x13d64a,
+ 0x63c85,
+ 0xa588,
+ 0x177ac6,
+ 0x125886,
+ 0x201742,
+ 0x827cc,
+ 0x19a347,
+ 0x23551,
+ 0x2d0783,
+ 0x5f245,
+ 0x102c4,
+ 0x274341c6,
+ 0x19146,
+ 0x178146,
+ 0x920ca,
+ 0xb2f03,
+ 0x27a5c984,
+ 0x130045,
+ 0xa383,
+ 0xd2b8c,
+ 0xf6188,
+ 0xbaf48,
+ 0xa3bc9,
+ 0x20c48,
+ 0x141dd06,
+ 0xfbc88,
+ 0x5e884,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x204cc2,
+ 0x20d1c2,
+ 0x332ec3,
+ 0x20a3c2,
+ 0x204ac3,
+ 0x200383,
+ 0x213e83,
+ 0x36388f,
+ 0x363c4e,
+ 0x15f048,
+ 0x2d0783,
+ 0x4cd07,
+ 0x231b83,
+ 0x332ec3,
+ 0x204303,
+ 0x204ac3,
+ 0x200383,
+ 0x21d0c3,
+ 0x239c47,
+ 0x200142,
+ 0x2c1949,
+ 0x201442,
+ 0x23f68b,
+ 0x2b5b8a,
+ 0x2bcfc9,
+ 0x200282,
+ 0x262b46,
+ 0x26d615,
+ 0x23f7d5,
+ 0x274a13,
+ 0x23fd53,
+ 0x202342,
+ 0x20d605,
+ 0x3ab1cc,
+ 0x24698b,
+ 0x29a745,
+ 0x205ac2,
+ 0x289c02,
+ 0x386746,
+ 0x200f82,
+ 0x25fb86,
+ 0x294d0d,
+ 0x255dcc,
+ 0x224444,
+ 0x201342,
+ 0x203782,
+ 0x248688,
+ 0x202302,
+ 0x208886,
+ 0x303bc4,
+ 0x26d7d5,
+ 0x274b93,
+ 0x210b83,
+ 0x33070a,
+ 0x2f0187,
+ 0x3b2209,
+ 0x32dc47,
+ 0x3124c2,
0x200002,
- 0x200006,
- 0x202f42,
- 0x880c8,
- 0x211302,
- 0x211d42,
- 0x273cc7,
- 0x3a8ac7,
- 0x21ed05,
- 0x215802,
- 0x220647,
- 0x220808,
- 0x279a82,
- 0x293f02,
- 0x22f802,
- 0x202ec2,
- 0x239c48,
- 0x21abc3,
- 0x267848,
- 0x2cf4cd,
- 0x215743,
- 0x369908,
- 0x234a4f,
- 0x234e0e,
- 0x223f8a,
- 0x36a611,
- 0x36aa90,
- 0x2b348d,
- 0x2b37cc,
- 0x3b2447,
- 0x348807,
- 0x355409,
- 0x23c302,
- 0x2004c2,
- 0x254c8c,
- 0x254f8b,
- 0x2008c2,
- 0x2dca86,
- 0x206c02,
- 0x2131c2,
- 0x21dec2,
- 0x216582,
- 0x392904,
- 0x23b147,
+ 0x3a4386,
+ 0x20a0c2,
+ 0x15f048,
+ 0x200802,
+ 0x211cc2,
+ 0x27d407,
+ 0x3b3507,
+ 0x21c7c5,
+ 0x201082,
+ 0x21d707,
+ 0x21d8c8,
+ 0x2413c2,
+ 0x2c2fc2,
+ 0x22c1c2,
+ 0x20e542,
+ 0x23b688,
+ 0x218443,
+ 0x2b72c8,
+ 0x2e078d,
+ 0x21fe43,
+ 0x226288,
+ 0x23e88f,
+ 0x23ec4e,
+ 0x24ac8a,
+ 0x229d11,
+ 0x22a190,
+ 0x2bf0cd,
+ 0x2bf40c,
+ 0x38c5c7,
+ 0x330887,
+ 0x3b30c9,
+ 0x204f02,
+ 0x200702,
+ 0x25a6cc,
+ 0x25a9cb,
+ 0x202ac2,
+ 0x2dcac6,
+ 0x20db42,
+ 0x20c502,
+ 0x21c402,
+ 0x20d1c2,
+ 0x384684,
+ 0x23c7c7,
+ 0x220802,
+ 0x242c07,
+ 0x243c47,
+ 0x2271c2,
+ 0x20e482,
+ 0x24cbc5,
+ 0x204d02,
+ 0x20cb4e,
+ 0x36f1cd,
+ 0x231b83,
+ 0x353a0e,
+ 0x2c0b8d,
+ 0x3ab643,
+ 0x201842,
+ 0x206744,
+ 0x208182,
+ 0x220a42,
+ 0x33e805,
+ 0x348447,
+ 0x372202,
+ 0x2041c2,
+ 0x250f07,
+ 0x2543c8,
+ 0x2abc02,
+ 0x2aa106,
+ 0x25a54c,
+ 0x25a88b,
+ 0x20da42,
+ 0x26588f,
+ 0x265c50,
+ 0x26604f,
+ 0x266415,
+ 0x266954,
+ 0x266e4e,
+ 0x2671ce,
+ 0x26754f,
+ 0x26790e,
+ 0x267c94,
+ 0x268193,
+ 0x26864d,
+ 0x27b549,
+ 0x28dbc3,
+ 0x200182,
+ 0x237b85,
+ 0x206506,
+ 0x208a42,
+ 0x21a2c7,
+ 0x332ec3,
+ 0x200642,
+ 0x36edc8,
+ 0x229f51,
+ 0x22a390,
0x200bc2,
- 0x23f1c7,
- 0x240447,
- 0x214ec2,
- 0x230542,
- 0x242885,
- 0x200682,
- 0x26380e,
- 0x27620d,
- 0x2343c3,
- 0x28268e,
- 0x356b8d,
- 0x2de803,
- 0x2058c2,
- 0x27cac4,
- 0x2446c2,
- 0x20ddc2,
- 0x346905,
- 0x34f587,
- 0x372642,
- 0x206ac2,
- 0x246cc7,
- 0x24c608,
- 0x23aa82,
- 0x2b5506,
- 0x254b0c,
- 0x254e4b,
- 0x221842,
- 0x25bccf,
- 0x25c090,
- 0x25c48f,
- 0x25c855,
- 0x25cd94,
- 0x25d28e,
- 0x25d60e,
- 0x25d98f,
- 0x25dd4e,
- 0x25e0d4,
- 0x25e5d3,
- 0x25ea8d,
- 0x271749,
- 0x286d43,
- 0x2007c2,
- 0x20a805,
- 0x208f46,
- 0x201f82,
- 0x26bdc7,
- 0x21eb03,
- 0x20b2c2,
- 0x2c7448,
- 0x36a851,
- 0x36ac90,
- 0x200942,
- 0x22a647,
- 0x2074c2,
- 0x3328c7,
- 0x209682,
- 0x305dc9,
- 0x3774c7,
- 0x3615c8,
- 0x228246,
- 0x2daf83,
- 0x34ad45,
- 0x234642,
- 0x200402,
- 0x200405,
- 0x399485,
- 0x202102,
- 0x24a503,
- 0x2cfc47,
- 0x208a07,
- 0x203f42,
- 0x2fec04,
- 0x214803,
- 0x2be489,
- 0x2db488,
- 0x20b402,
- 0x2061c2,
- 0x22f2c7,
- 0x24bcc5,
- 0x2a5f88,
- 0x3b0e87,
- 0x2047c3,
- 0x27df86,
- 0x2b330d,
- 0x2b368c,
- 0x276a06,
- 0x203142,
- 0x29a1c2,
- 0x206742,
- 0x2348cf,
- 0x234cce,
- 0x2d3847,
- 0x200342,
- 0x39e205,
- 0x39e206,
- 0x250042,
- 0x203042,
- 0x217c86,
- 0x2a9a83,
- 0x332806,
- 0x2bfb05,
- 0x2bfb0d,
- 0x2c00d5,
- 0x2c0c0c,
- 0x2c150d,
- 0x2c18d2,
- 0x20e842,
+ 0x28d387,
+ 0x200b02,
+ 0x205fc7,
+ 0x201b02,
+ 0x32f249,
+ 0x386707,
+ 0x281408,
+ 0x234006,
+ 0x2cf4c3,
+ 0x2cf4c5,
+ 0x231e02,
+ 0x204842,
+ 0x3a4785,
+ 0x376e05,
+ 0x205e82,
+ 0x245f43,
+ 0x3636c7,
+ 0x210687,
+ 0x204982,
+ 0x3aae04,
+ 0x214183,
+ 0x2c9209,
+ 0x2ed188,
+ 0x205d82,
+ 0x2032c2,
+ 0x26e2c7,
+ 0x282185,
+ 0x2ab548,
+ 0x20d2c7,
+ 0x216143,
+ 0x372306,
+ 0x2bef4d,
+ 0x2bf2cc,
+ 0x280346,
+ 0x208842,
+ 0x2017c2,
+ 0x201f02,
+ 0x23e70f,
+ 0x23eb0e,
+ 0x2d1dc7,
+ 0x203cc2,
+ 0x2c3345,
+ 0x2c3346,
+ 0x20bcc2,
+ 0x205f02,
+ 0x28f406,
+ 0x205f03,
+ 0x205f06,
+ 0x2ca585,
+ 0x2ca58d,
+ 0x2cab55,
+ 0x2cb38c,
+ 0x2cc28d,
+ 0x2cc652,
+ 0x20b602,
+ 0x273fc2,
+ 0x201302,
+ 0x240fc6,
+ 0x2fcf46,
+ 0x201002,
+ 0x206586,
+ 0x211f82,
+ 0x37edc5,
+ 0x202382,
+ 0x20cc89,
+ 0x2df2cc,
+ 0x2df60b,
+ 0x200382,
+ 0x255688,
+ 0x213a02,
+ 0x204c82,
+ 0x246746,
+ 0x36b005,
+ 0x235007,
+ 0x2567c5,
+ 0x294805,
+ 0x24cd82,
+ 0x20a642,
+ 0x217902,
+ 0x2f2847,
+ 0x24410d,
+ 0x24448c,
+ 0x2b3387,
+ 0x2aa082,
+ 0x23cf82,
+ 0x24ba48,
+ 0x2d0488,
+ 0x2e5f88,
+ 0x2f09c4,
+ 0x2dce87,
+ 0x2ee483,
+ 0x2b6042,
+ 0x200e82,
+ 0x2f11c9,
+ 0x395e87,
+ 0x2054c2,
+ 0x277245,
+ 0x201202,
+ 0x26a102,
+ 0x349c43,
+ 0x349c46,
+ 0x2f74c2,
+ 0x2f7fc2,
+ 0x201402,
+ 0x3b3fc6,
+ 0x206687,
+ 0x207842,
0x200e02,
- 0x200ac2,
- 0x2d6646,
- 0x2ac506,
- 0x2025c2,
- 0x208fc6,
+ 0x38bc8f,
+ 0x35384d,
+ 0x2b714e,
+ 0x2c0a0c,
+ 0x2003c2,
+ 0x205502,
+ 0x233e45,
+ 0x3b4e86,
+ 0x201ec2,
+ 0x200fc2,
+ 0x200682,
+ 0x20d244,
+ 0x2e0604,
+ 0x2d29c6,
+ 0x202602,
+ 0x27e787,
+ 0x22d703,
+ 0x22d708,
+ 0x24b048,
+ 0x390787,
+ 0x240ec6,
+ 0x20e5c2,
+ 0x23b383,
+ 0x23b387,
+ 0x272846,
+ 0x2e4385,
+ 0x2f0d48,
+ 0x206342,
+ 0x34a007,
+ 0x220c42,
+ 0x33c282,
+ 0x203b82,
+ 0x2dbe09,
+ 0x22fb02,
+ 0x200242,
+ 0x240183,
+ 0x319ac7,
+ 0x2018c2,
+ 0x2df44c,
+ 0x2df74b,
+ 0x2803c6,
+ 0x20a2c5,
+ 0x222e82,
+ 0x200a42,
+ 0x2bd306,
+ 0x235b83,
+ 0x39c147,
+ 0x23bb02,
0x203382,
- 0x2249c5,
- 0x204c02,
- 0x263949,
- 0x34700c,
- 0x34734b,
- 0x201502,
- 0x24ca48,
- 0x2042c2,
- 0x207a82,
- 0x219bc6,
- 0x36c005,
- 0x3a1687,
- 0x24a385,
- 0x28df05,
- 0x242a42,
- 0x202042,
- 0x206d42,
- 0x26e847,
- 0x2d094d,
- 0x2d0ccc,
- 0x2229c7,
- 0x2b5482,
- 0x226282,
- 0x36f088,
- 0x22ce88,
- 0x2d5b48,
- 0x2dfd44,
- 0x2ef207,
- 0x2dbf83,
- 0x280b82,
- 0x2014c2,
- 0x2e0489,
- 0x3a3247,
- 0x207442,
- 0x26d485,
- 0x241542,
- 0x22ff42,
- 0x297fc3,
- 0x297fc6,
- 0x2e6a82,
- 0x2e8642,
- 0x200c02,
- 0x30f006,
- 0x29dc87,
- 0x200b82,
- 0x208782,
- 0x26768f,
- 0x2824cd,
- 0x284d8e,
- 0x356a0c,
- 0x20d342,
- 0x207482,
- 0x228085,
- 0x3b3086,
- 0x212182,
- 0x208b02,
+ 0x26d495,
+ 0x23f995,
+ 0x2748d3,
+ 0x23fed3,
+ 0x2934c7,
+ 0x2b5948,
+ 0x2fb310,
+ 0x30ee4f,
+ 0x2b5953,
+ 0x2bcd92,
+ 0x2c1510,
+ 0x2ca1cf,
+ 0x2d57d2,
+ 0x2d84d1,
+ 0x2d9513,
+ 0x2dbbd2,
+ 0x2dd20f,
+ 0x2e57ce,
+ 0x2f5092,
+ 0x2f6351,
+ 0x2f754f,
+ 0x2f834e,
+ 0x300011,
+ 0x355810,
+ 0x35f212,
+ 0x3702d1,
+ 0x2f9bc6,
+ 0x307487,
+ 0x373387,
0x204b42,
- 0x282844,
- 0x2cf344,
- 0x338a86,
- 0x201bc2,
- 0x275247,
- 0x214343,
- 0x21cb88,
- 0x224348,
- 0x239247,
- 0x33fbc6,
- 0x2015c2,
- 0x239bc3,
- 0x35bf87,
- 0x266c86,
- 0x2d6585,
- 0x2d8e88,
- 0x208d82,
- 0x3211c7,
- 0x20dfc2,
- 0x35b202,
- 0x20ad82,
- 0x2bf8c9,
- 0x200242,
- 0x200a02,
- 0x222c43,
- 0x321887,
- 0x201a02,
- 0x34718c,
- 0x34748b,
- 0x276a86,
- 0x20cdc5,
- 0x224982,
- 0x206ec2,
- 0x2b3006,
- 0x229083,
- 0x340d07,
- 0x246002,
- 0x200cc2,
- 0x248e15,
- 0x32a415,
- 0x24dd53,
- 0x32a953,
- 0x264dc7,
- 0x288288,
- 0x288290,
- 0x289b0f,
- 0x28bf13,
- 0x2a3fd2,
- 0x2a9410,
- 0x2e79cf,
- 0x2f14d2,
- 0x351551,
- 0x2afb13,
- 0x2bf692,
- 0x2c8d0f,
- 0x2cb38e,
- 0x2cc152,
- 0x2cd191,
- 0x2cdd8f,
- 0x2ced4e,
- 0x2d4c11,
- 0x2e0090,
- 0x2e4452,
- 0x2e55d1,
- 0x2e6b06,
- 0x2e89c7,
- 0x2f77c7,
- 0x201582,
- 0x27a485,
- 0x2f2447,
- 0x221e42,
- 0x203c42,
- 0x22c605,
- 0x221303,
- 0x26e246,
- 0x2d0b0d,
- 0x2d0e4c,
- 0x203dc2,
- 0x27fdcb,
- 0x219cca,
- 0x31b28a,
- 0x2b22c9,
- 0x2dd20b,
- 0x3b0fcd,
- 0x2f2b4c,
- 0x2144ca,
- 0x221e8c,
- 0x24d10b,
- 0x268e4c,
- 0x26c10b,
- 0x346f83,
- 0x287e86,
- 0x326e82,
- 0x2e9202,
- 0x208943,
- 0x205882,
- 0x205883,
- 0x238406,
- 0x25ca07,
- 0x271406,
- 0x2ea8c8,
- 0x22cb88,
- 0x2f0206,
- 0x22d742,
- 0x2f508d,
- 0x2f53cc,
- 0x22d747,
- 0x2f8787,
- 0x2156c2,
- 0x21bf02,
- 0x21eb82,
- 0x24b982,
- 0x216582,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x217643,
- 0x200882,
- 0x200702,
- 0x2368c545,
- 0x23a03985,
- 0x23f0b146,
- 0x880c8,
- 0x242b0185,
- 0x216582,
- 0x201a42,
- 0x24755c45,
- 0x24a786c5,
- 0x24e79547,
- 0x2527b109,
- 0x2564b084,
- 0x201f82,
- 0x20b2c2,
- 0x25a43785,
- 0x25e8bb89,
- 0x26311f08,
- 0x266abe45,
- 0x26b0bc07,
- 0x26e18948,
- 0x272d8045,
- 0x27604606,
- 0x27b47b09,
- 0x27f25348,
- 0x282b8888,
- 0x2869310a,
- 0x28a48444,
- 0x28ec9405,
- 0x292b5dc8,
- 0x29616c85,
- 0x21ac42,
- 0x29a00343,
- 0x29ea2f86,
- 0x2a233a88,
- 0x2a69e2c6,
- 0x2aa9ddc8,
- 0x2ae09c86,
- 0x2b2f6284,
- 0x205902,
- 0x2b73b7c7,
- 0x2baa8444,
- 0x2be746c7,
- 0x2c333a07,
- 0x201502,
- 0x2c696ec5,
- 0x2ca31504,
- 0x2cf7fd07,
- 0x2d211e47,
- 0x2d67c906,
- 0x2da29585,
- 0x2de91bc7,
- 0x2e2d1a48,
- 0x2e60ab87,
- 0x2eb12b09,
- 0x2eec0f45,
- 0x2f32bb87,
- 0x2f68b886,
- 0x2fa51008,
- 0x225a4d,
- 0x242bc9,
- 0x2e4ccb,
- 0x3726cb,
- 0x26f30b,
- 0x2a564b,
- 0x2ffd0b,
- 0x2fffcb,
- 0x300849,
- 0x30208b,
- 0x30234b,
- 0x30290b,
- 0x30340a,
- 0x30394a,
- 0x303f4c,
- 0x308e0b,
- 0x30964a,
- 0x31c18a,
- 0x32734e,
- 0x3282ce,
- 0x32864a,
- 0x32b14a,
- 0x32cb4b,
- 0x32ce0b,
- 0x32dd0b,
- 0x34c50b,
- 0x34cb0a,
- 0x34d7cb,
- 0x34da8a,
- 0x34dd0a,
- 0x34df8a,
- 0x373f4b,
- 0x37c18b,
- 0x37dace,
- 0x37de4b,
- 0x3849cb,
- 0x38598b,
- 0x3893ca,
- 0x389649,
- 0x38988a,
- 0x38af0a,
- 0x39c60b,
- 0x39e64b,
- 0x39f24a,
- 0x3a02cb,
- 0x3a4f0b,
- 0x3b26cb,
- 0x2fe7ab48,
- 0x30285289,
- 0x30626809,
- 0x30acfe48,
- 0x338805,
- 0x203443,
- 0x204204,
- 0x327145,
- 0x24adc6,
- 0x259145,
- 0x284404,
- 0x26bcc8,
- 0x3739c5,
- 0x28d904,
- 0x3b3f87,
- 0x2996ca,
- 0x3605ca,
- 0x336947,
- 0x203347,
- 0x2f10c7,
- 0x362607,
- 0x2b9d05,
- 0x306d46,
- 0x2fb0c7,
- 0x3a2784,
- 0x376b06,
- 0x376a06,
- 0x3a3745,
- 0x280584,
- 0x2d3d46,
- 0x298387,
- 0x225d46,
- 0x2c7ec7,
- 0x28d6c3,
- 0x268446,
- 0x2328c5,
- 0x279647,
- 0x266fca,
- 0x263204,
- 0x2180c8,
- 0x2fb649,
- 0x2ce487,
- 0x3aed06,
- 0x29f988,
- 0x306409,
- 0x2e6244,
- 0x35d804,
- 0x2f9685,
- 0x2fadc8,
- 0x2bd1c7,
- 0x2aa009,
- 0x327c48,
- 0x2fc706,
- 0x379bc6,
- 0x2943c8,
- 0x375fc6,
- 0x203985,
- 0x27c9c6,
- 0x274bc8,
- 0x2347c6,
- 0x25708b,
- 0x233406,
- 0x295d4d,
- 0x358a45,
- 0x2a8306,
- 0x218a05,
- 0x297c89,
- 0x2f1d07,
- 0x382048,
- 0x2db2c6,
- 0x294ac9,
- 0x3a6246,
- 0x266f45,
- 0x29c1c6,
- 0x2a8e86,
- 0x2c2909,
- 0x306206,
- 0x279247,
- 0x33cf05,
- 0x205703,
- 0x257205,
- 0x296007,
- 0x323446,
- 0x358949,
- 0x30b146,
- 0x27cc06,
- 0x365389,
- 0x27c3c9,
- 0x29ca07,
- 0x369fc8,
- 0x39ee89,
- 0x27a108,
- 0x31f686,
- 0x2cc9c5,
- 0x30a44a,
- 0x27cc86,
- 0x330bc6,
- 0x2a3145,
- 0x24d588,
- 0x206847,
- 0x2318ca,
- 0x247786,
- 0x243005,
- 0x2a0e06,
- 0x265b47,
- 0x3aebc7,
- 0x2bacc5,
- 0x267105,
- 0x2acf46,
- 0x383446,
- 0x2ad886,
- 0x328cc4,
- 0x27b489,
- 0x286146,
- 0x2a5a0a,
- 0x214048,
- 0x32b888,
- 0x3605ca,
- 0x202145,
- 0x2982c5,
- 0x323c48,
- 0x2c9188,
- 0x320d47,
- 0x265146,
- 0x315308,
- 0x202b87,
- 0x279788,
- 0x35f146,
- 0x27dd08,
- 0x2b3b86,
- 0x2370c7,
- 0x295506,
- 0x2d3d46,
- 0x23628a,
- 0x392986,
- 0x2cc9c9,
- 0x2b0486,
- 0x2d238a,
- 0x2f6289,
- 0x2f0306,
- 0x37c504,
- 0x20a8cd,
- 0x285507,
- 0x317906,
- 0x2b8745,
- 0x3a62c5,
- 0x305546,
- 0x26d9c9,
- 0x3ad5c7,
- 0x275cc6,
- 0x2cd946,
- 0x284489,
- 0x212a44,
- 0x228dc4,
- 0x204308,
- 0x2387c6,
- 0x26d548,
- 0x2d6b88,
- 0x203ac7,
- 0x200849,
- 0x2ada87,
- 0x2b004a,
- 0x22decf,
- 0x2377ca,
- 0x227e85,
- 0x274e05,
- 0x216005,
+ 0x284e05,
+ 0x2febc7,
+ 0x217082,
+ 0x203142,
+ 0x2293c5,
+ 0x21ee43,
+ 0x35d986,
+ 0x2442cd,
+ 0x24460c,
+ 0x206602,
+ 0x3ab04b,
+ 0x24684a,
+ 0x30be4a,
+ 0x2bbf49,
+ 0x2ef68b,
+ 0x20d40d,
+ 0x2ff2cc,
+ 0x24890a,
+ 0x275b0c,
+ 0x27afcb,
+ 0x29a58c,
+ 0x2fa34b,
+ 0x2df243,
+ 0x35ee06,
+ 0x3a6502,
+ 0x2f8b82,
+ 0x2db2c3,
+ 0x202502,
+ 0x202503,
+ 0x245886,
+ 0x2665c7,
+ 0x365146,
+ 0x385cc8,
+ 0x2d0188,
+ 0x2d3186,
+ 0x2019c2,
+ 0x301c8d,
+ 0x301fcc,
+ 0x2da9c7,
+ 0x306d07,
+ 0x21fdc2,
+ 0x21ac02,
+ 0x23b302,
+ 0x254782,
+ 0x20d1c2,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x213e83,
+ 0x204cc2,
+ 0x204e02,
+ 0x29a94005,
+ 0x29e02e85,
+ 0x2a3177c6,
+ 0x15f048,
+ 0x2a6b5145,
+ 0x20d1c2,
+ 0x2000c2,
+ 0x2ab9c685,
+ 0x2ae83305,
+ 0x2b283e07,
+ 0x2b68b309,
+ 0x2ba47ac4,
+ 0x208a42,
+ 0x200642,
+ 0x2bf72245,
+ 0x2c293149,
+ 0x2c71db88,
+ 0x2cab2085,
+ 0x2cf363c7,
+ 0x2d219b08,
+ 0x2d6e8605,
+ 0x2da5b4c6,
+ 0x2de346c9,
+ 0x2e2b8648,
+ 0x2e6c4b48,
+ 0x2ea9cf0a,
+ 0x2ee52104,
+ 0x2f2d6585,
+ 0x2f6becc8,
+ 0x2fb51245,
+ 0x2184c2,
+ 0x2fe63b83,
+ 0x302a7786,
+ 0x3064ea48,
+ 0x30a24f06,
+ 0x30ecec88,
+ 0x3132d1c6,
+ 0x316e4444,
+ 0x202082,
+ 0x31b630c7,
+ 0x31eaeb84,
+ 0x3227dc47,
+ 0x327a1087,
+ 0x200382,
+ 0x32aa0685,
+ 0x32e03bc4,
+ 0x332d1807,
+ 0x3362adc7,
+ 0x33a87406,
+ 0x33e36085,
+ 0x3429b807,
+ 0x346d2688,
+ 0x34a37f07,
+ 0x34eb0689,
+ 0x3538e6c5,
+ 0x35719c07,
+ 0x35a92e46,
+ 0x35e62d48,
+ 0x2460cd,
+ 0x24cf09,
+ 0x2f484b,
+ 0x25534b,
+ 0x27de4b,
+ 0x2aa88b,
+ 0x30f20b,
+ 0x30f4cb,
+ 0x30fd49,
+ 0x310f0b,
+ 0x3111cb,
+ 0x311ccb,
+ 0x31284a,
+ 0x312d8a,
+ 0x31338c,
+ 0x31608b,
+ 0x3166ca,
+ 0x327eca,
+ 0x3328ce,
+ 0x333a4e,
+ 0x333dca,
+ 0x335d8a,
+ 0x3369cb,
+ 0x336c8b,
+ 0x337a4b,
+ 0x34c7cb,
+ 0x34cdca,
+ 0x34da8b,
+ 0x34dd4a,
+ 0x34dfca,
+ 0x34e24a,
+ 0x373ecb,
+ 0x37a2cb,
+ 0x37c38e,
+ 0x37c70b,
+ 0x383ecb,
+ 0x38500b,
+ 0x38984a,
+ 0x389ac9,
+ 0x389d0a,
+ 0x38b38a,
+ 0x39e50b,
+ 0x39fe8b,
+ 0x3a09ca,
+ 0x3a28cb,
+ 0x3a588b,
+ 0x3b44cb,
+ 0x36285b88,
+ 0x3668c289,
+ 0x36aa3a49,
+ 0x36ee0bc8,
+ 0x33c685,
+ 0x202943,
+ 0x212944,
+ 0x206885,
+ 0x247806,
+ 0x25b245,
+ 0x28adc4,
+ 0x21a1c8,
+ 0x30af85,
+ 0x297a44,
+ 0x209907,
+ 0x2a280a,
+ 0x361d8a,
+ 0x3101c7,
+ 0x211f47,
+ 0x2fdec7,
+ 0x255b47,
+ 0x2fad45,
+ 0x343d06,
+ 0x22cb47,
+ 0x26fec4,
+ 0x2e6b46,
+ 0x2e6a46,
+ 0x208305,
+ 0x3492c4,
+ 0x38ec86,
+ 0x2a1647,
+ 0x22d046,
+ 0x351b47,
+ 0x26a783,
+ 0x2b4846,
+ 0x232045,
+ 0x283f07,
+ 0x270e0a,
+ 0x26dfc4,
+ 0x218ec8,
+ 0x2affc9,
+ 0x2cb147,
+ 0x334646,
+ 0x255908,
+ 0x200a49,
+ 0x3b23c4,
+ 0x2210c4,
+ 0x278285,
+ 0x22c848,
+ 0x2c7f47,
+ 0x2a7109,
+ 0x2f9cc8,
+ 0x347a86,
+ 0x24c646,
+ 0x29de88,
+ 0x354c46,
+ 0x202e85,
+ 0x2874c6,
+ 0x27e108,
+ 0x254b86,
+ 0x25d14b,
+ 0x29dac6,
+ 0x29f50d,
+ 0x3b1785,
+ 0x2aea46,
+ 0x20f505,
+ 0x349909,
+ 0x2abe87,
+ 0x3195c8,
+ 0x292986,
+ 0x29e709,
+ 0x364546,
+ 0x270d85,
+ 0x2a4dc6,
+ 0x2c99c6,
+ 0x2cdb89,
+ 0x200846,
+ 0x253087,
+ 0x277885,
+ 0x202383,
+ 0x25d2c5,
+ 0x29f7c7,
+ 0x358e06,
+ 0x3b1689,
+ 0x3177c6,
+ 0x287706,
+ 0x215ec9,
+ 0x286ec9,
+ 0x2a5607,
+ 0x2cf688,
+ 0x377f89,
+ 0x284a88,
+ 0x379386,
+ 0x2d9dc5,
+ 0x23cb4a,
+ 0x287786,
+ 0x3a8506,
+ 0x2cbbc5,
+ 0x272188,
+ 0x215587,
+ 0x22e68a,
+ 0x251746,
+ 0x24d345,
+ 0x329cc6,
+ 0x2d6347,
0x334507,
- 0x277283,
- 0x36a1c8,
- 0x334d86,
- 0x334e89,
- 0x2c6a06,
- 0x2c2747,
- 0x294889,
- 0x381f48,
- 0x2a3207,
- 0x2fee83,
- 0x338885,
- 0x3b2005,
- 0x328b0b,
- 0x216d44,
- 0x2c5044,
- 0x273486,
- 0x2ff447,
- 0x39794a,
- 0x245807,
- 0x3b0407,
- 0x2786c5,
- 0x205285,
- 0x2196c9,
- 0x2d3d46,
- 0x24568d,
- 0x358045,
- 0x2a2d43,
- 0x205d03,
- 0x349205,
- 0x350005,
- 0x29f988,
- 0x276707,
- 0x228b46,
- 0x29a646,
- 0x22d905,
- 0x234687,
- 0x2035c7,
- 0x36ec47,
- 0x2c948a,
- 0x268508,
- 0x328cc4,
- 0x2ade47,
- 0x277cc7,
- 0x32d086,
- 0x264607,
- 0x2b2a08,
- 0x226708,
- 0x26b786,
- 0x367f08,
- 0x2c32c4,
- 0x2fb0c6,
- 0x3a9146,
- 0x2c0a86,
- 0x349c06,
- 0x29abc4,
- 0x3626c6,
- 0x2b76c6,
- 0x293606,
- 0x2293c6,
- 0x205bc6,
- 0x2b2846,
- 0x228a48,
- 0x39de08,
- 0x2c9cc8,
- 0x259348,
- 0x323bc6,
- 0x210785,
- 0x275386,
- 0x2abec5,
- 0x388807,
- 0x28ae45,
- 0x213d43,
- 0x364605,
- 0x22fd84,
- 0x205d05,
- 0x210143,
- 0x39a7c7,
- 0x31c448,
- 0x2c7f86,
- 0x2c514d,
- 0x274dc6,
- 0x292b85,
- 0x2afd43,
- 0x2b5789,
- 0x212bc6,
- 0x231246,
- 0x29c2c4,
- 0x237747,
- 0x235b06,
- 0x243245,
- 0x216ec3,
- 0x378a44,
- 0x277e86,
- 0x2b15c4,
- 0x30d748,
- 0x324a89,
- 0x2f2209,
- 0x29c0ca,
- 0x23f88d,
- 0x29da47,
- 0x330a46,
- 0x20ec44,
- 0x27b109,
- 0x283588,
- 0x285106,
- 0x263bc6,
- 0x264607,
- 0x2c3c06,
- 0x21b606,
- 0x38c346,
- 0x333a8a,
- 0x218948,
- 0x22bc45,
- 0x27d649,
- 0x279c8a,
- 0x2c54c8,
- 0x2979c8,
- 0x292108,
- 0x2a864c,
- 0x2dc7c5,
- 0x29a8c8,
- 0x39e106,
- 0x2d1d06,
- 0x37af07,
- 0x245705,
- 0x27cb45,
- 0x2f20c9,
- 0x212747,
- 0x2b2ec5,
- 0x21e9c7,
- 0x205d03,
- 0x2bd705,
- 0x366548,
- 0x2d1687,
- 0x297889,
- 0x2d7985,
- 0x2f4504,
- 0x2a1788,
- 0x2cf787,
- 0x2a33c8,
- 0x2740c8,
- 0x32c005,
- 0x334c86,
- 0x257706,
- 0x2e7649,
- 0x315b87,
- 0x2ac986,
- 0x30e947,
- 0x217d43,
- 0x24b084,
- 0x298c45,
- 0x2ae0c4,
- 0x236844,
- 0x27adc7,
- 0x3affc7,
- 0x239a04,
- 0x2976d0,
- 0x3056c7,
- 0x205285,
- 0x22ae8c,
- 0x2018c4,
- 0x2bee08,
- 0x236fc9,
- 0x2ffb86,
- 0x2a03c8,
- 0x25a7c4,
- 0x25a7c8,
- 0x231ec6,
- 0x229248,
- 0x298946,
- 0x2c828b,
- 0x205705,
- 0x2c3248,
- 0x21a3c4,
- 0x27c04a,
- 0x297889,
- 0x2e0d06,
- 0x2160c8,
- 0x258645,
- 0x301944,
- 0x2bed06,
- 0x36eb08,
- 0x27ab48,
- 0x345d06,
- 0x31d6c4,
- 0x30a3c6,
- 0x2adb07,
- 0x2745c7,
- 0x26460f,
- 0x2074c7,
- 0x2f03c7,
- 0x2d1bc5,
- 0x2ed845,
- 0x29c6c9,
- 0x28ae86,
- 0x278fc5,
- 0x27c6c7,
- 0x37b188,
- 0x293705,
- 0x295506,
- 0x213e88,
- 0x29e2ca,
- 0x282988,
- 0x287947,
- 0x22e306,
- 0x27d606,
- 0x21f283,
- 0x2042c3,
- 0x279e49,
- 0x39ed09,
- 0x2bec06,
- 0x2d7985,
- 0x2a84c8,
- 0x2160c8,
- 0x387808,
- 0x38c3cb,
- 0x2c5387,
- 0x2fd189,
- 0x264888,
- 0x33c7c4,
- 0x2c2a08,
- 0x2895c9,
- 0x2acc85,
- 0x334407,
- 0x24b105,
- 0x27aa48,
- 0x28c3cb,
- 0x291910,
- 0x2a8105,
- 0x21a30c,
- 0x228d05,
- 0x2032c3,
- 0x2a2c06,
- 0x2b6e04,
- 0x231606,
- 0x298387,
- 0x213f04,
- 0x2415c8,
- 0x36a08d,
- 0x2d9685,
- 0x23fd84,
- 0x219904,
- 0x27d0c9,
- 0x297408,
- 0x30afc7,
- 0x231f48,
- 0x27b548,
- 0x275fc5,
- 0x331547,
- 0x275f47,
- 0x20af07,
- 0x267109,
- 0x235989,
- 0x23f346,
- 0x2b39c6,
- 0x264846,
- 0x25b8c5,
- 0x3af344,
- 0x204506,
- 0x204a46,
- 0x276008,
- 0x26580b,
- 0x2630c7,
- 0x20ec44,
- 0x317d86,
- 0x203107,
- 0x348b45,
- 0x318f05,
- 0x201e84,
- 0x235906,
- 0x204588,
- 0x27b109,
- 0x257c86,
- 0x282f08,
- 0x243306,
- 0x33ce48,
- 0x2d8a8c,
- 0x275e86,
- 0x29284d,
- 0x292ccb,
- 0x279305,
- 0x203707,
- 0x306306,
- 0x3aea88,
- 0x23f3c9,
- 0x2e7288,
- 0x205285,
- 0x2ecc07,
- 0x27a208,
- 0x384789,
- 0x2a05c6,
- 0x33bfca,
- 0x3ae808,
- 0x2e70cb,
- 0x2c608c,
- 0x25a8c8,
- 0x277506,
- 0x334708,
- 0x29df47,
- 0x2cfa09,
- 0x28ba8d,
- 0x2961c6,
- 0x3017c8,
- 0x39dcc9,
- 0x2b6188,
- 0x27de08,
- 0x2b7f8c,
- 0x2b9347,
- 0x2b9f07,
- 0x266f45,
- 0x3a4d47,
- 0x37b048,
- 0x2bed86,
- 0x257b0c,
- 0x2e4988,
- 0x2c44c8,
- 0x24b5c6,
- 0x3b1d87,
- 0x23f544,
- 0x259348,
- 0x356e4c,
- 0x3a1a0c,
- 0x227f05,
- 0x393d47,
- 0x31d646,
- 0x3b1d06,
- 0x297e48,
- 0x38c284,
- 0x225d4b,
- 0x22844b,
- 0x22e306,
- 0x369f07,
- 0x307d45,
- 0x26ca85,
- 0x225e86,
- 0x258605,
- 0x216d05,
- 0x3accc7,
- 0x273a89,
- 0x233504,
- 0x2722c5,
- 0x2d7645,
- 0x254448,
- 0x22b4c5,
- 0x2a7809,
- 0x2af2c7,
- 0x2af2cb,
- 0x2d1046,
- 0x228789,
- 0x2804c8,
- 0x271c05,
- 0x20b008,
- 0x2359c8,
- 0x207ec7,
- 0x27d4c7,
- 0x27ae49,
- 0x229187,
- 0x32d3c9,
- 0x2aaf4c,
- 0x312a08,
- 0x2b9b49,
- 0x2be7c7,
- 0x27b609,
- 0x3b0107,
- 0x2c6188,
- 0x3afac5,
- 0x2fb046,
- 0x2b8788,
- 0x2f8b88,
- 0x279b49,
- 0x216d47,
- 0x26cb45,
- 0x20e3c9,
- 0x2c4086,
- 0x28b884,
- 0x2e6f46,
- 0x233908,
- 0x2426c7,
- 0x265a08,
- 0x367fc9,
- 0x261a47,
- 0x299886,
- 0x2037c4,
- 0x364689,
- 0x3313c8,
- 0x24b487,
- 0x306e46,
- 0x3b20c6,
- 0x330b44,
+ 0x2c4145,
+ 0x270f45,
+ 0x2b2f86,
+ 0x351746,
+ 0x387046,
+ 0x2b8bc4,
+ 0x286209,
+ 0x28d146,
+ 0x30e50a,
+ 0x222848,
+ 0x309148,
+ 0x361d8a,
+ 0x2145c5,
+ 0x2a1585,
+ 0x37f588,
+ 0x2b6348,
+ 0x21b507,
+ 0x293846,
+ 0x320d48,
+ 0x3674c7,
+ 0x285188,
+ 0x2b9206,
+ 0x2885c8,
+ 0x29ad46,
+ 0x227c87,
+ 0x272b06,
+ 0x38ec86,
+ 0x25d9ca,
+ 0x384706,
+ 0x2d9dc9,
+ 0x2b5446,
+ 0x2e3d8a,
+ 0x2e4449,
+ 0x362586,
+ 0x2ba844,
+ 0x237c4d,
+ 0x28c507,
+ 0x3268c6,
+ 0x2c4a05,
+ 0x3645c5,
+ 0x375846,
+ 0x2d1649,
+ 0x2b4287,
0x27f886,
- 0x205c83,
- 0x308149,
- 0x2056c6,
- 0x2a61c5,
- 0x29a646,
- 0x2a3505,
- 0x27a688,
- 0x25a607,
- 0x362446,
- 0x355c86,
- 0x32b888,
- 0x29c847,
- 0x296205,
- 0x29ab48,
- 0x39ea48,
- 0x3ae808,
- 0x228bc5,
- 0x2fb0c6,
- 0x2f1fc9,
- 0x257584,
- 0x3760cb,
- 0x21b30b,
- 0x22bb49,
- 0x205d03,
- 0x256385,
- 0x205986,
- 0x229908,
- 0x22de44,
- 0x2c7f86,
- 0x2c95c9,
- 0x2c5b05,
- 0x3acc06,
- 0x2cf786,
- 0x2160c4,
- 0x2a1b4a,
- 0x2a6108,
- 0x2f8b86,
- 0x368a05,
- 0x204887,
- 0x301547,
- 0x334c84,
- 0x21b547,
- 0x2b0044,
- 0x2c0a06,
- 0x202e03,
- 0x267105,
- 0x373445,
- 0x207708,
- 0x2ae005,
- 0x275bc9,
- 0x259187,
- 0x25918b,
- 0x2a2d8c,
- 0x2a3a0a,
- 0x30bc07,
- 0x200a83,
- 0x2d3948,
- 0x228d85,
- 0x293785,
- 0x338944,
- 0x2c6086,
- 0x236fc6,
- 0x27f8c7,
- 0x3656cb,
- 0x29abc4,
- 0x3821c4,
- 0x26b904,
- 0x2c25c6,
- 0x213f04,
- 0x2faec8,
- 0x338745,
- 0x23fec5,
- 0x387747,
- 0x203809,
- 0x350005,
- 0x375a4a,
- 0x37b2c9,
- 0x290f8a,
- 0x333bc9,
- 0x353144,
- 0x2cda05,
- 0x2c3d08,
- 0x37fdcb,
- 0x2f9685,
- 0x38d4c6,
- 0x2159c4,
- 0x276106,
- 0x2618c9,
- 0x317e47,
- 0x30b308,
- 0x23fc06,
- 0x2ada87,
- 0x27ab48,
- 0x38f586,
- 0x280204,
- 0x35eb87,
- 0x34e905,
- 0x360c07,
- 0x204604,
- 0x306286,
- 0x218bc8,
- 0x292e88,
- 0x3a4ac7,
- 0x217d88,
- 0x2b3c45,
- 0x205b44,
- 0x3604c8,
- 0x217e84,
- 0x207ec5,
- 0x2ed984,
- 0x202c87,
- 0x286207,
- 0x27b748,
- 0x2a3546,
- 0x2adf85,
- 0x2759c8,
- 0x282b88,
- 0x29c009,
- 0x21b606,
- 0x231948,
- 0x27beca,
- 0x348bc8,
- 0x2d8045,
- 0x275586,
- 0x26d888,
- 0x2eccca,
- 0x341107,
- 0x283985,
- 0x28ef48,
- 0x2b1184,
- 0x24d606,
- 0x2ba688,
- 0x205bc6,
- 0x380dc8,
- 0x2573c7,
- 0x3b3e86,
- 0x37c504,
- 0x29ce07,
- 0x2fac04,
- 0x261887,
- 0x23108d,
- 0x22bbc5,
- 0x2d148b,
- 0x298a46,
- 0x24cb48,
- 0x241584,
- 0x272086,
- 0x277e86,
- 0x334a47,
- 0x29250d,
- 0x25fd07,
- 0x300248,
- 0x29fb05,
- 0x284008,
- 0x2bd146,
- 0x2b3cc8,
- 0x20e886,
- 0x367707,
- 0x368189,
- 0x33f9c7,
- 0x2853c8,
- 0x26f705,
- 0x21ed88,
- 0x3b1c45,
- 0x23b2c5,
- 0x333e45,
- 0x226743,
- 0x27ca44,
- 0x27d645,
- 0x347b09,
- 0x31b646,
- 0x2b2b08,
- 0x2ecec5,
- 0x312447,
- 0x249dca,
- 0x3acb49,
- 0x2a8d8a,
- 0x2c9d48,
- 0x21e80c,
- 0x27c74d,
- 0x2f86c3,
- 0x380cc8,
- 0x378a05,
- 0x29e086,
- 0x381dc6,
- 0x2e3985,
- 0x30ea49,
- 0x310045,
- 0x2759c8,
- 0x279146,
- 0x33f4c6,
- 0x2a1649,
- 0x38ed87,
- 0x28c686,
- 0x249d48,
- 0x2c0988,
- 0x2d0047,
- 0x2293ce,
- 0x2bd385,
- 0x384685,
- 0x205ac8,
- 0x322d07,
- 0x214782,
- 0x2b7b04,
- 0x23150a,
- 0x24b548,
- 0x203206,
- 0x2949c8,
- 0x257706,
- 0x335988,
- 0x2ac988,
- 0x23b284,
- 0x328945,
- 0x683c04,
- 0x683c04,
- 0x683c04,
- 0x203983,
- 0x3b1f46,
- 0x275e86,
- 0x29924c,
- 0x205b03,
- 0x279c86,
- 0x213f84,
- 0x212b48,
- 0x2c9405,
- 0x231606,
- 0x2b5ec8,
- 0x2cb0c6,
- 0x3623c6,
- 0x29f788,
- 0x298cc7,
- 0x228f49,
- 0x2e96ca,
- 0x20abc4,
- 0x28ae45,
- 0x2a9fc5,
- 0x2128c6,
- 0x29da86,
- 0x299c86,
- 0x2ec386,
- 0x229084,
- 0x22908b,
- 0x233904,
- 0x204905,
- 0x2ab5c5,
- 0x203b86,
- 0x359288,
- 0x27c607,
- 0x30b0c4,
- 0x259cc3,
- 0x2b0c85,
- 0x2e6e07,
- 0x2a4449,
- 0x27c50b,
- 0x27f8c7,
- 0x207607,
- 0x2b5dc8,
- 0x312587,
- 0x2a4686,
- 0x242e88,
- 0x299e8b,
- 0x327086,
- 0x213a89,
- 0x29a005,
- 0x2fee83,
- 0x3acc06,
- 0x2572c8,
- 0x20e943,
- 0x2e6f03,
- 0x27ab46,
- 0x257706,
- 0x38ac8a,
- 0x277545,
- 0x277ccb,
- 0x29a58b,
- 0x240a03,
- 0x20f943,
- 0x2affc4,
- 0x367b47,
- 0x257344,
- 0x2039c4,
- 0x39df84,
- 0x348ec8,
- 0x368948,
- 0x30e389,
+ 0x2c9546,
+ 0x28ae49,
+ 0x264a04,
+ 0x2d4a44,
+ 0x3ac808,
+ 0x245c46,
+ 0x277308,
+ 0x2e66c8,
+ 0x202fc7,
+ 0x3a80c9,
+ 0x387247,
+ 0x2b500a,
+ 0x2498cf,
+ 0x250b0a,
+ 0x233c45,
+ 0x27e345,
+ 0x218745,
+ 0x303b07,
+ 0x20e183,
+ 0x2cf888,
+ 0x3028c6,
+ 0x3029c9,
+ 0x2d4006,
+ 0x3aeb47,
+ 0x29e4c9,
+ 0x3194c8,
+ 0x2cbc87,
+ 0x30d803,
+ 0x33c705,
+ 0x20e105,
+ 0x2b8a0b,
+ 0x351304,
+ 0x257984,
+ 0x27cbc6,
+ 0x30e887,
+ 0x38b10a,
+ 0x2757c7,
+ 0x38c807,
+ 0x283305,
+ 0x200045,
+ 0x240909,
+ 0x38ec86,
+ 0x27564d,
+ 0x35af05,
+ 0x29f4c3,
+ 0x20ad83,
+ 0x34f785,
+ 0x347845,
+ 0x255908,
+ 0x280047,
+ 0x2d47c6,
+ 0x2a36c6,
+ 0x2296c5,
+ 0x231e47,
+ 0x202ac7,
+ 0x33f1c7,
+ 0x2d660a,
+ 0x2b4908,
+ 0x2b8bc4,
+ 0x254907,
+ 0x281607,
+ 0x3400c6,
+ 0x26f8c7,
+ 0x2eaa08,
+ 0x2e9e88,
+ 0x2abd86,
+ 0x2d1ec8,
+ 0x2008c4,
+ 0x22cb46,
+ 0x247d86,
+ 0x216646,
+ 0x3a8c46,
+ 0x22d9c4,
+ 0x255c06,
+ 0x2c31c6,
+ 0x29d406,
+ 0x235ec6,
+ 0x20ac46,
+ 0x2ea846,
+ 0x2d46c8,
+ 0x3af1c8,
+ 0x2d6e48,
+ 0x25b448,
+ 0x37f506,
+ 0x212485,
+ 0x2e2006,
+ 0x2b2105,
+ 0x388c87,
+ 0x216605,
+ 0x2136c3,
+ 0x203ec5,
+ 0x33fb44,
+ 0x20ad85,
+ 0x2266c3,
+ 0x338007,
+ 0x34bc88,
+ 0x351c06,
+ 0x32250d,
+ 0x27e306,
+ 0x29c985,
+ 0x2d9743,
+ 0x2be689,
+ 0x264b86,
+ 0x23c0c6,
+ 0x2a4ec4,
+ 0x250a87,
+ 0x233006,
+ 0x2b4545,
+ 0x234a83,
+ 0x207ac4,
+ 0x2817c6,
+ 0x2ded04,
+ 0x32b8c8,
+ 0x39ba49,
+ 0x24d849,
+ 0x2a4cca,
+ 0x387acd,
+ 0x208d07,
+ 0x224bc6,
+ 0x20a684,
+ 0x28b309,
+ 0x28a088,
+ 0x28c106,
+ 0x23dfc6,
+ 0x26f8c7,
+ 0x2b9a46,
+ 0x21f706,
+ 0x3ac246,
+ 0x3a110a,
+ 0x219b08,
+ 0x2464c5,
+ 0x26fd09,
+ 0x28568a,
+ 0x2fa988,
+ 0x2a0ec8,
+ 0x29bd48,
+ 0x2af08c,
+ 0x316305,
+ 0x2a3948,
+ 0x2e8e06,
+ 0x319746,
+ 0x3aea07,
+ 0x2756c5,
+ 0x287645,
+ 0x24d709,
+ 0x213487,
+ 0x302985,
+ 0x227487,
+ 0x20ad83,
+ 0x2c8485,
+ 0x20b8c8,
+ 0x25d647,
+ 0x2a0d89,
+ 0x2de405,
+ 0x307784,
+ 0x2a6508,
+ 0x363207,
+ 0x2cbe48,
+ 0x368c48,
+ 0x2dc805,
+ 0x304286,
+ 0x278686,
+ 0x2ac1c9,
+ 0x31c407,
+ 0x2b29c6,
+ 0x3b3907,
+ 0x221d03,
+ 0x247ac4,
+ 0x2a7885,
+ 0x231f84,
+ 0x383c84,
+ 0x286947,
+ 0x35bdc7,
+ 0x27fa44,
+ 0x2a0bd0,
+ 0x367c87,
+ 0x200045,
+ 0x2536cc,
+ 0x225344,
+ 0x2b1588,
+ 0x227b89,
+ 0x2b4e06,
+ 0x220d88,
+ 0x247344,
+ 0x247348,
+ 0x22ec86,
+ 0x235d48,
+ 0x2a1c06,
+ 0x2d328b,
+ 0x202385,
+ 0x2cb988,
+ 0x216ac4,
+ 0x39be8a,
+ 0x2a0d89,
+ 0x381346,
+ 0x218808,
+ 0x25ebc5,
+ 0x2b69c4,
+ 0x2b1486,
+ 0x33f088,
+ 0x285b88,
+ 0x340bc6,
+ 0x31d104,
+ 0x23cac6,
+ 0x3872c7,
+ 0x27db47,
+ 0x26f8cf,
+ 0x205547,
+ 0x362647,
+ 0x38eb45,
+ 0x352245,
+ 0x2a52c9,
+ 0x30e1c6,
+ 0x284045,
+ 0x2871c7,
+ 0x2c1108,
+ 0x29d505,
+ 0x272b06,
+ 0x222688,
+ 0x224f0a,
+ 0x2e13c8,
+ 0x28f187,
+ 0x249d06,
+ 0x26fcc6,
+ 0x20df43,
+ 0x218303,
+ 0x285849,
+ 0x377e09,
+ 0x2b0586,
+ 0x2de405,
+ 0x2163c8,
+ 0x218808,
+ 0x354dc8,
+ 0x3ac2cb,
+ 0x322747,
+ 0x30b249,
+ 0x26fb48,
+ 0x335844,
+ 0x349588,
+ 0x291409,
+ 0x2b2cc5,
+ 0x303a07,
+ 0x247b45,
+ 0x285a88,
+ 0x293e8b,
+ 0x29b550,
+ 0x2ae605,
+ 0x216a0c,
+ 0x2d4985,
+ 0x283383,
+ 0x29f386,
+ 0x2c0984,
+ 0x203cc6,
+ 0x2a1647,
+ 0x222704,
+ 0x24b388,
+ 0x2cf74d,
+ 0x35e245,
+ 0x208d44,
+ 0x233984,
+ 0x287bc9,
+ 0x2990c8,
+ 0x317647,
+ 0x22ed08,
+ 0x2862c8,
+ 0x27fb85,
+ 0x20f747,
+ 0x27fb07,
+ 0x238287,
+ 0x270f49,
+ 0x232e89,
+ 0x242d86,
+ 0x2bf606,
+ 0x26fb06,
+ 0x289845,
+ 0x39b744,
+ 0x3b0e86,
+ 0x3b5306,
+ 0x27fbc8,
+ 0x2d600b,
+ 0x26de87,
+ 0x20a684,
+ 0x364a46,
+ 0x367a47,
+ 0x34f0c5,
+ 0x263645,
+ 0x212dc4,
+ 0x232e06,
+ 0x3b0f08,
+ 0x28b309,
+ 0x252f86,
+ 0x289a48,
+ 0x2b4606,
+ 0x342708,
+ 0x34c34c,
+ 0x27fa46,
+ 0x29c64d,
+ 0x29cacb,
+ 0x253145,
+ 0x202c07,
+ 0x200946,
+ 0x3343c8,
+ 0x242e09,
+ 0x393c88,
+ 0x200045,
+ 0x2e2a87,
+ 0x284b88,
+ 0x358649,
+ 0x344106,
+ 0x252e8a,
+ 0x334148,
+ 0x393acb,
+ 0x3298cc,
+ 0x247448,
+ 0x280e46,
+ 0x303d08,
+ 0x3a8347,
+ 0x363489,
+ 0x29304d,
+ 0x29f986,
+ 0x21e608,
+ 0x3af089,
+ 0x2bfd08,
+ 0x2886c8,
+ 0x2c3a0c,
+ 0x2c5047,
+ 0x2c5507,
+ 0x270d85,
+ 0x31e5c7,
0x2c0fc8,
- 0x3065c7,
- 0x2293c6,
- 0x2b274f,
- 0x2bd4c6,
- 0x2c9384,
- 0x36878a,
- 0x2e6d07,
- 0x3a37c6,
- 0x28b8c9,
- 0x30e305,
- 0x207845,
- 0x30e446,
- 0x21eec3,
- 0x2b11c9,
- 0x218ac6,
- 0x367d89,
- 0x397946,
- 0x267105,
- 0x228305,
- 0x2074c3,
- 0x367c88,
- 0x2df587,
- 0x334d84,
- 0x2129c8,
- 0x2d3ac4,
- 0x2d4646,
- 0x2a2c06,
- 0x23e7c6,
- 0x2c3109,
- 0x293705,
- 0x2d3d46,
- 0x264ac9,
- 0x3ac846,
- 0x2b2846,
- 0x387c46,
- 0x2119c5,
- 0x2ed986,
- 0x367704,
- 0x3afac5,
- 0x2b8784,
- 0x309246,
- 0x358004,
- 0x202c83,
- 0x283645,
- 0x2356c8,
- 0x21e007,
- 0x2b4549,
- 0x283888,
- 0x294191,
- 0x2cf80a,
- 0x22e247,
- 0x2ee8c6,
- 0x213f84,
- 0x2b8888,
- 0x239748,
- 0x29434a,
- 0x2a75cd,
- 0x29c1c6,
- 0x29f886,
- 0x29cec6,
- 0x2bab47,
- 0x300305,
- 0x250ec7,
- 0x212a85,
- 0x2af404,
- 0x2a7006,
- 0x27f707,
- 0x2b0ecd,
- 0x26d7c7,
- 0x26bbc8,
- 0x275cc9,
- 0x275486,
- 0x2a0545,
- 0x210184,
- 0x233a06,
- 0x334b86,
- 0x24b6c6,
- 0x297088,
- 0x211883,
- 0x203b43,
- 0x323585,
- 0x3112c6,
- 0x2ac945,
- 0x23fe08,
- 0x29854a,
- 0x2f5cc4,
- 0x212b48,
- 0x292108,
- 0x2039c7,
- 0x2ecf89,
- 0x2b5ac8,
- 0x27b187,
- 0x264fc6,
- 0x205bca,
- 0x233a88,
- 0x2c5ec9,
- 0x2974c8,
- 0x21adc9,
- 0x2e7387,
- 0x2d9005,
- 0x226986,
- 0x2bec08,
- 0x24ccc8,
- 0x30bec8,
- 0x22e408,
- 0x204905,
- 0x200884,
- 0x2df288,
- 0x20bdc4,
- 0x3339c4,
- 0x267105,
- 0x28d947,
- 0x2035c9,
- 0x334847,
- 0x231985,
- 0x273686,
- 0x346d46,
- 0x213bc4,
- 0x2a1986,
- 0x2addc4,
- 0x283f06,
- 0x3b0586,
- 0x2150c6,
- 0x205285,
- 0x23fcc7,
- 0x200a83,
- 0x3334c9,
- 0x32b688,
- 0x2129c4,
- 0x27b00d,
- 0x292f88,
- 0x2f0848,
- 0x2c5e46,
- 0x368289,
- 0x3acb49,
- 0x2615c5,
- 0x29864a,
- 0x2863ca,
- 0x28b24c,
- 0x28b3c6,
- 0x274446,
- 0x2bd646,
- 0x269509,
- 0x29e2c6,
- 0x250f06,
- 0x310106,
- 0x259348,
- 0x217d86,
- 0x2c344b,
- 0x28dac5,
- 0x23fec5,
- 0x2746c5,
- 0x202606,
- 0x205b83,
- 0x23e746,
- 0x26d747,
- 0x2b8745,
- 0x379c85,
- 0x3a62c5,
- 0x2eb2c6,
- 0x261684,
- 0x311e06,
- 0x28f789,
- 0x20248c,
- 0x2af148,
- 0x28f8c4,
- 0x2ed746,
- 0x298b46,
- 0x2572c8,
- 0x2160c8,
- 0x202389,
- 0x204887,
- 0x238509,
- 0x24c346,
- 0x22f904,
- 0x20edc4,
- 0x27a944,
- 0x27ab48,
- 0x20340a,
- 0x34ff86,
- 0x353d47,
- 0x2c7687,
- 0x228885,
- 0x2a9f84,
- 0x289586,
- 0x300346,
- 0x235bc3,
- 0x32b4c7,
- 0x273fc8,
- 0x26170a,
- 0x30fa88,
- 0x29ddc8,
- 0x358045,
- 0x279405,
- 0x2631c5,
- 0x228c46,
- 0x229d06,
- 0x3aff05,
- 0x308389,
- 0x2a9d8c,
- 0x263287,
- 0x2943c8,
- 0x258945,
- 0x683c04,
- 0x2e3d84,
- 0x2d17c4,
- 0x214b06,
- 0x29b10e,
- 0x2078c7,
- 0x2bad45,
- 0x25750c,
- 0x2c0847,
- 0x27f687,
- 0x2806c9,
- 0x218189,
- 0x283985,
- 0x32b688,
- 0x2f1fc9,
- 0x2f3d05,
- 0x2b8688,
- 0x2c2c06,
- 0x360746,
- 0x2f6284,
- 0x33c1c8,
- 0x248283,
- 0x3630c4,
- 0x2b0d05,
- 0x305547,
- 0x201ec5,
- 0x27bd89,
- 0x38040d,
- 0x2a1f86,
- 0x2e9644,
- 0x2650c8,
- 0x2738ca,
- 0x21fe87,
- 0x23a245,
- 0x203c43,
- 0x29a74e,
- 0x25770c,
- 0x2f99c7,
- 0x29b2c7,
- 0x204643,
- 0x29e305,
- 0x2d17c5,
- 0x294d88,
- 0x291f49,
- 0x36e986,
- 0x257344,
- 0x22e186,
- 0x32ffcb,
- 0x3a694c,
- 0x35dc47,
- 0x2c90c5,
- 0x39e948,
- 0x2cfe05,
- 0x368787,
- 0x33b7c7,
- 0x248285,
- 0x205b83,
- 0x371284,
- 0x2041c5,
- 0x383505,
- 0x383506,
- 0x28e848,
- 0x27f707,
- 0x3820c6,
- 0x200a06,
- 0x333d86,
- 0x265689,
- 0x331647,
- 0x378186,
- 0x3a6ac6,
- 0x248346,
- 0x2a8405,
- 0x399a86,
- 0x398f45,
- 0x22b548,
- 0x29154b,
- 0x289386,
- 0x2c76c4,
- 0x2eca89,
- 0x259184,
- 0x2c2b88,
- 0x2aab47,
- 0x27dd04,
- 0x2b4e88,
- 0x2b9904,
- 0x2a8444,
- 0x3a26c5,
- 0x2d96c6,
- 0x348e07,
- 0x23fd43,
- 0x299945,
- 0x316144,
- 0x3846c6,
- 0x261648,
- 0x323ac5,
- 0x28d3c9,
- 0x20e5c5,
- 0x2d6288,
- 0x34a5c7,
- 0x388948,
- 0x2b4387,
- 0x2f0489,
- 0x362546,
- 0x336186,
- 0x310104,
- 0x264f05,
- 0x2f490c,
- 0x2746c7,
- 0x274cc7,
- 0x2c7548,
- 0x2a1f86,
- 0x26d684,
- 0x31b184,
- 0x27acc9,
- 0x2bd746,
- 0x219747,
- 0x349b84,
- 0x31b746,
- 0x27f285,
- 0x2a3087,
- 0x2c33c6,
- 0x33be89,
- 0x28b087,
- 0x264607,
- 0x2a14c6,
- 0x23f785,
- 0x278e48,
- 0x218948,
- 0x23acc6,
- 0x323b05,
- 0x251a46,
- 0x206583,
- 0x294c09,
- 0x299a0e,
- 0x2b3188,
- 0x2d3bc8,
- 0x23aacb,
- 0x28d606,
- 0x209c84,
- 0x27c344,
- 0x299b0a,
- 0x21a207,
- 0x378245,
- 0x213a89,
- 0x2b7785,
- 0x333a07,
- 0x2ff984,
- 0x324c07,
- 0x2d6a88,
- 0x2ce546,
- 0x34a889,
- 0x2b5bca,
- 0x21a186,
- 0x292ac6,
- 0x2ab545,
- 0x37e405,
- 0x3261c7,
- 0x244208,
- 0x27f1c8,
- 0x23b286,
- 0x228385,
- 0x29d80e,
- 0x328cc4,
- 0x23ac45,
- 0x273009,
- 0x28ac88,
- 0x287886,
- 0x296d0c,
- 0x298150,
- 0x29ad4f,
- 0x29c5c8,
- 0x30bc07,
- 0x205285,
- 0x27d645,
- 0x348c89,
- 0x28f149,
- 0x30a4c6,
- 0x2f9707,
- 0x393cc5,
- 0x320d49,
- 0x32d106,
- 0x29e10d,
- 0x27a809,
- 0x2039c4,
- 0x2b2f08,
- 0x2df349,
- 0x350146,
- 0x273785,
- 0x336186,
- 0x30b1c9,
- 0x38e148,
- 0x210785,
- 0x27bfc4,
- 0x296ecb,
- 0x350005,
- 0x226786,
- 0x27ca86,
- 0x25f1c6,
- 0x38c5cb,
- 0x28d4c9,
- 0x3b0245,
- 0x388707,
- 0x2cf786,
- 0x231346,
- 0x27bc48,
- 0x2d97c9,
- 0x26b98c,
- 0x2e6c08,
- 0x350246,
- 0x345d03,
- 0x334606,
- 0x27d305,
- 0x278008,
- 0x227d86,
- 0x2a32c8,
- 0x245885,
- 0x294505,
- 0x2a1d48,
- 0x301687,
- 0x381d07,
- 0x27f8c7,
- 0x2a03c8,
- 0x30bd48,
- 0x262286,
- 0x309087,
- 0x24af47,
- 0x27d1ca,
- 0x24c243,
- 0x202606,
- 0x203545,
- 0x231504,
- 0x275cc9,
- 0x2f0404,
- 0x21e084,
- 0x2989c4,
- 0x29b2cb,
- 0x2df4c7,
- 0x29da45,
- 0x2913c8,
- 0x273686,
- 0x273688,
- 0x277486,
- 0x287d45,
- 0x288685,
- 0x28a0c6,
- 0x28b548,
- 0x28b808,
- 0x275e86,
- 0x29120f,
- 0x2946d0,
- 0x358a45,
- 0x200a83,
- 0x24a985,
- 0x2fd0c8,
- 0x28f049,
- 0x3ae808,
- 0x34a708,
- 0x330608,
- 0x2df587,
- 0x273349,
- 0x2a34c8,
- 0x2785c4,
- 0x298848,
- 0x254509,
- 0x30aac7,
- 0x296144,
- 0x334908,
- 0x23fa8a,
- 0x2c2446,
- 0x29c1c6,
- 0x21b4c9,
- 0x298387,
- 0x2c2f88,
- 0x332348,
- 0x349a08,
- 0x353885,
- 0x37f385,
- 0x23fec5,
- 0x2d1785,
- 0x371dc7,
- 0x205b85,
- 0x2b8745,
- 0x36fd86,
- 0x3ae747,
- 0x37fd07,
- 0x23fd86,
- 0x2ca285,
- 0x226786,
- 0x25a685,
- 0x2c06c8,
- 0x31b5c4,
- 0x3ac8c6,
- 0x358844,
- 0x301948,
- 0x22534a,
- 0x27670c,
- 0x3658c5,
- 0x2bac06,
- 0x26bb46,
- 0x323946,
- 0x2fd2c4,
- 0x27f545,
- 0x2772c7,
- 0x298409,
- 0x2a4547,
- 0x683c04,
- 0x683c04,
- 0x30af45,
- 0x20f5c4,
- 0x2966ca,
- 0x273506,
- 0x2e7044,
- 0x3a3745,
- 0x2eee85,
- 0x300244,
- 0x27c6c7,
- 0x20e547,
- 0x2c25c8,
- 0x319188,
- 0x210789,
- 0x2994c8,
- 0x29688b,
- 0x2128c4,
- 0x35d745,
- 0x279045,
- 0x27f849,
- 0x2d97c9,
- 0x2ec988,
- 0x327ac8,
- 0x203b84,
- 0x298b85,
- 0x203443,
- 0x212885,
- 0x2d3dc6,
- 0x291d8c,
- 0x2189c6,
- 0x25a6c6,
- 0x287b05,
- 0x2eb348,
- 0x3a6bc6,
- 0x2eea46,
- 0x29c1c6,
- 0x21f40c,
- 0x24b884,
- 0x333eca,
- 0x287a48,
- 0x291bc7,
- 0x316046,
- 0x36ea47,
- 0x2e12c5,
- 0x306e46,
- 0x352386,
- 0x381bc7,
- 0x21e0c4,
- 0x202d85,
- 0x273004,
- 0x2af487,
- 0x273248,
- 0x2742ca,
- 0x27a087,
- 0x23ae47,
- 0x30bb87,
- 0x2cff49,
- 0x291d8a,
- 0x229043,
- 0x21dfc5,
- 0x215103,
- 0x39dfc9,
- 0x24b308,
- 0x2d1bc7,
- 0x3ae909,
- 0x218a46,
- 0x2c6b08,
- 0x39a745,
- 0x282c8a,
- 0x216249,
- 0x26b649,
- 0x37af07,
- 0x239849,
- 0x214fc8,
- 0x2edb06,
- 0x2badc8,
- 0x2119c7,
- 0x229187,
- 0x37b2c7,
- 0x2d1a48,
- 0x2ed5c6,
- 0x23f845,
- 0x2772c7,
- 0x2925c8,
- 0x3587c4,
- 0x2a58c4,
- 0x28c587,
- 0x2acd07,
- 0x2f1e4a,
- 0x2eda86,
- 0x2f984a,
- 0x2b7a47,
- 0x328a87,
- 0x23b384,
- 0x32d484,
- 0x2272c6,
- 0x30ed84,
- 0x30ed8c,
- 0x3a2005,
- 0x215f09,
- 0x2d6404,
- 0x300305,
- 0x273848,
- 0x28b8c5,
- 0x305546,
- 0x207c84,
- 0x29044a,
- 0x2b14c6,
- 0x29228a,
- 0x20ab87,
- 0x265b45,
- 0x21eec5,
- 0x2288ca,
- 0x2a1a85,
- 0x29c0c6,
- 0x20bdc4,
- 0x2b0146,
- 0x326285,
- 0x227e46,
- 0x3a4acc,
- 0x2cba4a,
- 0x264fc4,
- 0x2293c6,
- 0x298387,
- 0x2c8744,
- 0x259348,
- 0x38d3c6,
- 0x29d689,
- 0x2c4b89,
- 0x312b09,
- 0x376286,
- 0x211ac6,
- 0x2baf07,
- 0x3082c8,
- 0x2118c9,
- 0x2df4c7,
- 0x2b3ac6,
- 0x2adb07,
- 0x29cd85,
- 0x328cc4,
- 0x2baac7,
- 0x24b105,
- 0x2846c5,
- 0x2fe0c7,
- 0x248148,
- 0x39e8c6,
- 0x29344d,
- 0x294f8f,
- 0x29a58d,
- 0x21b3c4,
- 0x2357c6,
- 0x2cbe08,
- 0x3100c5,
- 0x27d388,
- 0x207d8a,
- 0x2039c4,
- 0x330206,
- 0x27e487,
- 0x33fe07,
- 0x298d89,
- 0x2bad85,
- 0x300244,
- 0x32888a,
- 0x2b5689,
- 0x239947,
- 0x268206,
- 0x350146,
- 0x298ac6,
- 0x35ec46,
- 0x2cb70f,
- 0x2cbcc9,
- 0x217d86,
- 0x239646,
- 0x29ed49,
- 0x309187,
- 0x2101c3,
- 0x21f586,
- 0x2042c3,
- 0x2e3848,
- 0x2ad947,
- 0x29c7c9,
- 0x2a2a88,
- 0x381e48,
- 0x216e86,
- 0x331209,
- 0x33b905,
- 0x2a33c4,
- 0x2d90c7,
- 0x269585,
- 0x21b3c4,
- 0x29db08,
- 0x21a4c4,
- 0x302b87,
- 0x31c3c6,
- 0x2ad005,
- 0x2974c8,
- 0x35000b,
- 0x32bb87,
- 0x228b46,
- 0x2bd544,
- 0x209c06,
- 0x267105,
- 0x24b105,
- 0x278bc9,
- 0x27c2c9,
- 0x2291c4,
- 0x229205,
- 0x229405,
- 0x282b06,
- 0x32b788,
- 0x2b7186,
- 0x273e0b,
- 0x2ffa0a,
- 0x2fad05,
- 0x288706,
- 0x2f59c5,
- 0x3b2585,
- 0x297b47,
- 0x204308,
- 0x238504,
- 0x2614c6,
- 0x28b886,
- 0x215187,
- 0x2fee44,
- 0x277e86,
- 0x239d85,
- 0x239d89,
- 0x211cc4,
- 0x2aa109,
- 0x275e86,
- 0x2b9408,
- 0x229405,
- 0x2c7785,
- 0x227e46,
- 0x26b889,
- 0x218189,
- 0x25a746,
- 0x28ad88,
- 0x257608,
- 0x2f5984,
- 0x32e244,
- 0x32e248,
- 0x317a08,
- 0x238609,
- 0x2d3d46,
- 0x29c1c6,
- 0x3151cd,
- 0x2c7f86,
- 0x2d8949,
- 0x254785,
- 0x30e446,
- 0x251008,
- 0x311d45,
- 0x24af84,
- 0x267105,
- 0x27b948,
- 0x296489,
- 0x2730c4,
- 0x306286,
- 0x2e74ca,
- 0x2c54c8,
- 0x2f1fc9,
- 0x2d114a,
- 0x3ae886,
- 0x295148,
- 0x368545,
- 0x30f908,
- 0x2b4485,
- 0x218909,
- 0x36c449,
- 0x228e82,
- 0x29a005,
- 0x26c7c6,
- 0x275dc7,
- 0x3aacc5,
- 0x2f8a86,
- 0x2f7e08,
- 0x2a1f86,
- 0x2c3bc9,
- 0x274dc6,
- 0x27bac8,
- 0x2a90c5,
- 0x244046,
- 0x367808,
- 0x27ab48,
- 0x3b0608,
- 0x2fc788,
- 0x399a84,
- 0x22d8c3,
- 0x2c3e04,
- 0x22e106,
- 0x29cdc4,
- 0x2d3b07,
- 0x2ee949,
- 0x2bcd45,
- 0x332346,
- 0x21f586,
- 0x28e68b,
- 0x2fac46,
- 0x318546,
- 0x3ac9c8,
- 0x379bc6,
- 0x265943,
- 0x396f83,
- 0x328cc4,
- 0x231845,
- 0x243147,
- 0x273248,
- 0x27324f,
- 0x2771cb,
- 0x32b588,
- 0x306306,
- 0x32b88e,
- 0x227e43,
- 0x2430c4,
- 0x2fabc5,
- 0x33db46,
- 0x28968b,
- 0x28da06,
- 0x213f09,
- 0x2ad005,
- 0x389d88,
- 0x206408,
- 0x21804c,
- 0x29b306,
- 0x2128c6,
- 0x2d7985,
- 0x285188,
- 0x276705,
- 0x33c7c8,
- 0x29a9ca,
- 0x226809,
- 0x683c04,
- 0x31216582,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x323ac3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x238483,
- 0x2264c3,
- 0x224103,
- 0x224104,
- 0x22d183,
- 0x2374c4,
- 0x2343c3,
- 0x22d684,
- 0x21eb03,
- 0x3aaf87,
- 0x211003,
- 0x2025c3,
- 0x32d208,
- 0x2264c3,
- 0x2aeecb,
- 0x2e1a03,
- 0x241f86,
- 0x203e42,
- 0x38660b,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x2264c3,
- 0x280ec3,
- 0x200cc3,
- 0x200882,
- 0x880c8,
- 0x281045,
- 0x2db108,
- 0x2e7e08,
- 0x216582,
- 0x2a0f05,
- 0x340ec7,
- 0x200202,
- 0x2417c7,
- 0x201f82,
- 0x23a887,
- 0x36b2c9,
- 0x318908,
- 0x349889,
- 0x32ed82,
- 0x266707,
- 0x25a4c4,
- 0x340f87,
- 0x2ff907,
- 0x233e42,
- 0x211003,
- 0x20e842,
- 0x205902,
- 0x201502,
- 0x206d42,
- 0x208782,
- 0x217642,
- 0x2a8c45,
- 0x2e3cc5,
- 0x16582,
- 0x343c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x12003,
- 0x481,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x202243,
- 0x238483,
- 0x2264c3,
- 0x21ca03,
- 0x340f2d86,
- 0x107003,
- 0x79ac5,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x9502,
- 0x880c8,
- 0x441c4,
- 0xd0205,
- 0x200882,
- 0x2ba384,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x35bb03,
- 0x2a9c05,
- 0x202243,
- 0x332683,
- 0x238483,
- 0x201f43,
- 0x2264c3,
- 0x217643,
- 0x224183,
- 0x223ec3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x216582,
- 0x2264c3,
- 0x880c8,
- 0x21eb03,
- 0x880c8,
- 0x316403,
- 0x22d183,
- 0x232144,
- 0x2343c3,
- 0x21eb03,
- 0x2082c2,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x2082c2,
- 0x2348c3,
- 0x238483,
- 0x2264c3,
- 0x2db083,
- 0x217643,
- 0x200882,
- 0x216582,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x241f85,
- 0x1835c6,
- 0x224104,
- 0x203e42,
- 0x880c8,
- 0x200882,
- 0x20448,
- 0x216582,
- 0xee46,
- 0x167404,
- 0x10f2cb,
- 0x173606,
- 0x131ac7,
- 0x2343c3,
- 0x21eb03,
- 0x157f45,
- 0x155dc4,
- 0x202c43,
- 0x4c207,
- 0xcd884,
- 0x238483,
- 0x133184,
- 0x2264c3,
- 0x2e26c4,
- 0x149708,
- 0x155646,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x2025c3,
- 0x2264c3,
- 0x2e1a03,
- 0x203e42,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201603,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x22d684,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x241f86,
- 0x2343c3,
- 0x21eb03,
- 0x179ac3,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x131ac7,
- 0x880c8,
- 0x21eb03,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x3aa2d183,
- 0x2343c3,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x200882,
- 0x216582,
- 0x22d183,
- 0x21eb03,
- 0x238483,
- 0x201502,
- 0x2264c3,
- 0x309dc7,
- 0x20b28b,
- 0x200b03,
- 0x2a06c8,
- 0x308047,
- 0x2017c6,
- 0x2bba05,
- 0x2f7989,
- 0x20bc48,
- 0x20bc49,
- 0x20bc50,
- 0x359fcb,
- 0x2ea589,
- 0x20c783,
- 0x221749,
- 0x232c46,
- 0x232c4c,
- 0x20be48,
- 0x3ac688,
- 0x26e089,
- 0x29bace,
- 0x37cc4b,
- 0x38db4c,
- 0x204803,
- 0x2582cc,
- 0x207209,
- 0x2de107,
- 0x23430c,
- 0x39b60a,
- 0x245dc4,
- 0x3b08cd,
- 0x258188,
- 0x2ded8d,
- 0x266b86,
- 0x28a70b,
- 0x209dc9,
- 0x318407,
- 0x31d846,
- 0x320f49,
- 0x332a4a,
- 0x302708,
- 0x2e1604,
- 0x272187,
- 0x226a87,
- 0x349d84,
- 0x20f244,
- 0x27e989,
- 0x326ec9,
- 0x20a588,
- 0x2114c5,
- 0x392785,
- 0x20d3c6,
- 0x3b0789,
- 0x20800d,
- 0x38d5c8,
- 0x20d2c7,
- 0x2bba88,
- 0x22eec6,
- 0x3a1504,
- 0x37f645,
- 0x2055c6,
- 0x206104,
- 0x207107,
- 0x20914a,
- 0x2139c4,
- 0x21a0c6,
- 0x21aa49,
- 0x21aa4f,
- 0x21b00d,
- 0x21b786,
- 0x220050,
- 0x220446,
- 0x220b87,
- 0x221087,
- 0x22108f,
- 0x222309,
- 0x227746,
- 0x229747,
- 0x229748,
- 0x229b09,
- 0x28d708,
- 0x2d7d07,
- 0x20cd03,
- 0x3852c6,
- 0x204008,
- 0x29bd8a,
- 0x215749,
- 0x20bd83,
- 0x340dc6,
- 0x26130a,
- 0x2ef8c7,
- 0x2ddf4a,
- 0x377e0e,
- 0x222446,
- 0x29a207,
- 0x214d86,
- 0x2072c6,
- 0x37f18b,
- 0x21d18a,
- 0x21768d,
- 0x211b87,
- 0x310288,
- 0x310289,
- 0x31028f,
- 0x3b218c,
- 0x278289,
- 0x33948e,
- 0x3ab08a,
- 0x368dc6,
- 0x37bf86,
- 0x30420c,
- 0x31370c,
- 0x327688,
- 0x33f8c7,
- 0x2131c5,
- 0x29e584,
- 0x24fb0e,
- 0x332cc4,
- 0x238a87,
- 0x26274a,
- 0x382554,
- 0x3839cf,
- 0x221248,
- 0x385188,
- 0x370e8d,
- 0x370e8e,
- 0x38fec9,
- 0x22fe88,
- 0x22fe8f,
- 0x23400c,
- 0x23400f,
- 0x235507,
- 0x237bca,
- 0x21f18b,
- 0x23a0c8,
- 0x23bb47,
- 0x25b08d,
- 0x252506,
- 0x3b0a86,
- 0x23e5c9,
- 0x215d48,
- 0x242188,
- 0x24218e,
+ 0x2b1506,
+ 0x2aaccc,
+ 0x2f55c8,
+ 0x2d0d88,
+ 0x2ba286,
+ 0x20de87,
+ 0x242f84,
+ 0x25b448,
+ 0x28f50c,
+ 0x353d0c,
+ 0x233cc5,
+ 0x2d2887,
+ 0x31d086,
+ 0x20de06,
+ 0x349ac8,
+ 0x2027c4,
+ 0x22d04b,
+ 0x27e8cb,
+ 0x249d06,
+ 0x2cf5c7,
+ 0x31a2c5,
+ 0x276545,
+ 0x22d186,
+ 0x25eb85,
+ 0x3512c5,
+ 0x2cd5c7,
+ 0x27d1c9,
+ 0x351904,
+ 0x34ee05,
+ 0x2e6fc5,
+ 0x2dea88,
+ 0x2287c5,
+ 0x2bca49,
+ 0x37aac7,
+ 0x37aacb,
+ 0x244806,
+ 0x2d4409,
+ 0x349208,
+ 0x27c385,
+ 0x238388,
+ 0x232ec8,
+ 0x23a6c7,
+ 0x2e2f87,
+ 0x2869c9,
+ 0x235c87,
+ 0x289149,
+ 0x2acf8c,
+ 0x2b0588,
+ 0x2b6189,
+ 0x321f87,
+ 0x286389,
+ 0x35bf07,
+ 0x3299c8,
+ 0x3a8285,
+ 0x22cac6,
+ 0x2c4a48,
+ 0x2f0fc8,
+ 0x285549,
+ 0x351307,
+ 0x276605,
+ 0x36b6c9,
+ 0x2b9ec6,
+ 0x2323c4,
+ 0x2323c6,
+ 0x24e8c8,
+ 0x252847,
+ 0x2d6208,
+ 0x2d1f89,
+ 0x3a1e07,
+ 0x2a29c6,
+ 0x202cc4,
+ 0x203f49,
+ 0x20f5c8,
+ 0x2ba147,
+ 0x343e06,
+ 0x20e1c6,
+ 0x3a8484,
+ 0x247f86,
+ 0x201b83,
+ 0x296789,
+ 0x202346,
+ 0x2d2205,
+ 0x2a36c6,
+ 0x24f305,
+ 0x285008,
+ 0x247187,
+ 0x244b46,
+ 0x39c6c6,
+ 0x309148,
+ 0x2a5447,
+ 0x29f9c5,
+ 0x2a09c8,
+ 0x3ada88,
+ 0x334148,
+ 0x2d4845,
+ 0x22cb46,
+ 0x24d609,
+ 0x2ac044,
+ 0x24f18b,
+ 0x21f40b,
+ 0x2463c9,
+ 0x20ad83,
+ 0x25bf05,
+ 0x213a86,
+ 0x313788,
+ 0x249844,
+ 0x351c06,
+ 0x2d6749,
+ 0x2bc545,
+ 0x2cd506,
+ 0x363206,
+ 0x2163c4,
+ 0x2aec0a,
+ 0x2d2148,
+ 0x2f0fc6,
+ 0x2c2585,
+ 0x3b1987,
+ 0x231147,
+ 0x304284,
+ 0x21f647,
+ 0x2165c4,
+ 0x2165c6,
+ 0x203c83,
+ 0x270f45,
+ 0x350e85,
+ 0x205788,
+ 0x254ac5,
+ 0x27f789,
+ 0x25b287,
+ 0x25b28b,
+ 0x2a758c,
+ 0x2a810a,
+ 0x3363c7,
+ 0x204083,
+ 0x212188,
+ 0x2d4a05,
+ 0x29d585,
+ 0x20ae44,
+ 0x3298c6,
+ 0x227b86,
+ 0x247fc7,
+ 0x2349cb,
+ 0x22d9c4,
+ 0x2e8f04,
+ 0x219e04,
+ 0x2cd786,
+ 0x222704,
+ 0x22c948,
+ 0x33c5c5,
+ 0x244d85,
+ 0x354d07,
+ 0x202d09,
+ 0x347845,
+ 0x37584a,
+ 0x277789,
+ 0x29810a,
+ 0x3a1249,
+ 0x335fc4,
+ 0x2c9605,
+ 0x2b9b48,
+ 0x2d18cb,
+ 0x278285,
+ 0x2f0086,
+ 0x2200c4,
+ 0x27fcc6,
+ 0x3a1c89,
+ 0x364b07,
+ 0x317988,
+ 0x387e46,
+ 0x387247,
+ 0x285b88,
+ 0x380946,
+ 0x37f0c4,
+ 0x363f87,
+ 0x366085,
+ 0x377547,
+ 0x25b4c4,
+ 0x2008c6,
+ 0x2f1e08,
+ 0x29cc88,
+ 0x2e88c7,
+ 0x27d548,
+ 0x29ae05,
+ 0x20abc4,
+ 0x361c88,
+ 0x27d644,
+ 0x2186c5,
+ 0x2fac44,
+ 0x3675c7,
+ 0x28d207,
+ 0x2864c8,
+ 0x2cbfc6,
+ 0x254a45,
+ 0x27f588,
+ 0x2e15c8,
+ 0x2a4c09,
+ 0x21f706,
+ 0x22e708,
+ 0x39bd0a,
+ 0x34f148,
+ 0x2e8605,
+ 0x2e2206,
+ 0x277648,
+ 0x2e2b4a,
0x20b387,
- 0x25f8c5,
- 0x243a85,
- 0x202084,
- 0x201a86,
- 0x20a488,
- 0x24f103,
- 0x3b154e,
+ 0x28a645,
+ 0x298888,
+ 0x2b3c44,
+ 0x272206,
+ 0x2c5888,
+ 0x20ac46,
+ 0x239a88,
+ 0x29bfc7,
+ 0x209806,
+ 0x2ba844,
+ 0x28ba07,
+ 0x2b6804,
+ 0x3a1c47,
+ 0x23bf0d,
+ 0x21b585,
+ 0x2d144b,
+ 0x2a1d06,
+ 0x255788,
+ 0x24b344,
+ 0x27bc86,
+ 0x2817c6,
+ 0x304047,
+ 0x29c30d,
+ 0x226dc7,
+ 0x2b6d48,
+ 0x271a05,
+ 0x27f048,
+ 0x2c7ec6,
+ 0x29ae88,
+ 0x223a06,
+ 0x26a9c7,
+ 0x336689,
+ 0x33d2c7,
+ 0x28c3c8,
+ 0x279685,
+ 0x21c848,
+ 0x20dd45,
+ 0x396005,
+ 0x3a14c5,
+ 0x221443,
+ 0x235984,
+ 0x26fd05,
+ 0x2346c9,
+ 0x285f86,
+ 0x2eab08,
+ 0x2e2d45,
+ 0x2b8847,
+ 0x2aee8a,
+ 0x2cd449,
+ 0x2c98ca,
+ 0x2d6ec8,
+ 0x2272cc,
+ 0x28724d,
+ 0x2ff683,
+ 0x239988,
+ 0x207a85,
+ 0x224cc6,
+ 0x319346,
+ 0x2e7f05,
+ 0x3b3a09,
+ 0x358f45,
+ 0x27f588,
+ 0x2841c6,
+ 0x348806,
+ 0x2a63c9,
+ 0x38f247,
+ 0x294146,
+ 0x2aee08,
+ 0x216548,
+ 0x2e0dc7,
+ 0x235ece,
+ 0x2c8105,
+ 0x358545,
+ 0x20ab48,
+ 0x27f3c7,
+ 0x20e202,
+ 0x2c3584,
+ 0x203bca,
+ 0x2ba208,
+ 0x367b46,
+ 0x29e608,
+ 0x278686,
+ 0x31a7c8,
+ 0x2b29c8,
+ 0x395fc4,
+ 0x2b8d85,
+ 0x68a8c4,
+ 0x68a8c4,
+ 0x68a8c4,
+ 0x202403,
+ 0x20e046,
+ 0x27fa46,
+ 0x2a220c,
+ 0x209843,
+ 0x285686,
+ 0x215344,
+ 0x264b08,
+ 0x2d6585,
+ 0x203cc6,
+ 0x2bedc8,
+ 0x2d8206,
+ 0x244ac6,
+ 0x381148,
+ 0x2a7907,
+ 0x235a49,
+ 0x2d4bca,
+ 0x208a84,
+ 0x216605,
+ 0x2a70c5,
+ 0x264886,
+ 0x208d46,
+ 0x2a2dc6,
+ 0x2f9ec6,
+ 0x235b84,
+ 0x235b8b,
+ 0x231144,
+ 0x2a23c5,
+ 0x2b19c5,
+ 0x203086,
+ 0x3b5548,
+ 0x287107,
+ 0x317744,
+ 0x2453c3,
+ 0x2b3745,
+ 0x30a847,
+ 0x28700b,
+ 0x205687,
+ 0x2becc8,
+ 0x2e8b47,
+ 0x231646,
+ 0x24d1c8,
+ 0x2e318b,
+ 0x2067c6,
+ 0x213bc9,
+ 0x2e3305,
+ 0x30d803,
+ 0x2cd506,
+ 0x29bec8,
+ 0x214cc3,
+ 0x200a03,
+ 0x285b86,
+ 0x278686,
+ 0x375dca,
+ 0x280e85,
+ 0x28160b,
+ 0x2a360b,
+ 0x245103,
+ 0x202043,
+ 0x2b4f84,
+ 0x278447,
+ 0x247444,
+ 0x202ec4,
+ 0x2e8c84,
+ 0x34f448,
+ 0x2c24c8,
+ 0x3b2049,
+ 0x38e748,
+ 0x200c07,
+ 0x235ec6,
+ 0x2ea74f,
+ 0x2c8246,
+ 0x2d6504,
+ 0x2c230a,
+ 0x30a747,
+ 0x208386,
+ 0x292e89,
+ 0x3b1fc5,
+ 0x2058c5,
+ 0x3b2106,
+ 0x21c983,
+ 0x2b3c89,
+ 0x219c86,
+ 0x212009,
+ 0x38b106,
+ 0x270f45,
+ 0x2340c5,
+ 0x205543,
+ 0x278588,
+ 0x211607,
+ 0x3028c4,
+ 0x264988,
+ 0x2313c4,
+ 0x338d86,
+ 0x29f386,
+ 0x2419c6,
+ 0x2cb849,
+ 0x29d505,
+ 0x38ec86,
+ 0x2a2fc9,
+ 0x2c7606,
+ 0x2ea846,
+ 0x386e86,
+ 0x200b45,
+ 0x2fac46,
+ 0x26a9c4,
+ 0x3a8285,
+ 0x2c4a44,
+ 0x2b7846,
+ 0x35aec4,
+ 0x20f843,
+ 0x28a145,
+ 0x232bc8,
+ 0x2e9687,
+ 0x2bd949,
+ 0x28a548,
+ 0x29dc51,
+ 0x36328a,
+ 0x249c47,
+ 0x2ea1c6,
+ 0x215344,
+ 0x2c4b48,
+ 0x282f48,
+ 0x29de0a,
+ 0x2bc80d,
+ 0x2a4dc6,
+ 0x381246,
+ 0x28bac6,
+ 0x2c3fc7,
+ 0x2b6e05,
+ 0x262c07,
+ 0x264a45,
+ 0x37ac04,
+ 0x2ad586,
+ 0x216287,
+ 0x2b398d,
+ 0x277587,
+ 0x21a0c8,
+ 0x27f889,
+ 0x2e2106,
+ 0x344085,
+ 0x226704,
+ 0x24e9c6,
+ 0x304186,
+ 0x2ba386,
+ 0x29ee88,
+ 0x2179c3,
+ 0x203043,
+ 0x3598c5,
+ 0x2300c6,
+ 0x2b2985,
+ 0x388048,
+ 0x2a180a,
+ 0x2cee04,
+ 0x264b08,
+ 0x29bd48,
+ 0x202ec7,
+ 0x2e2e09,
+ 0x2be9c8,
+ 0x28b387,
+ 0x2936c6,
+ 0x20ac4a,
+ 0x24ea48,
+ 0x396449,
+ 0x299188,
+ 0x21cec9,
+ 0x2ea087,
+ 0x2effc5,
+ 0x3ac4c6,
+ 0x2b1388,
+ 0x285d08,
+ 0x2a1048,
+ 0x249e08,
+ 0x2a23c5,
+ 0x20f444,
+ 0x211308,
+ 0x208484,
+ 0x3a1044,
+ 0x270f45,
+ 0x297a87,
+ 0x202ac9,
+ 0x303e47,
+ 0x215f45,
+ 0x27cdc6,
+ 0x34ebc6,
+ 0x203d44,
+ 0x2a6706,
+ 0x254884,
+ 0x27ef46,
+ 0x202886,
+ 0x214b06,
+ 0x200045,
+ 0x387f07,
+ 0x204083,
+ 0x206b49,
+ 0x308f48,
+ 0x264984,
+ 0x28b20d,
+ 0x29cd88,
+ 0x3053c8,
+ 0x3963c6,
+ 0x336789,
+ 0x2cd449,
+ 0x3a1985,
+ 0x2a190a,
+ 0x2adb4a,
+ 0x2af7cc,
+ 0x2af946,
+ 0x27d9c6,
+ 0x2c83c6,
+ 0x273209,
+ 0x224f06,
+ 0x262c46,
+ 0x359006,
0x25b448,
- 0x29ff0b,
- 0x366947,
- 0x3a31c5,
- 0x239506,
- 0x2aa947,
- 0x39a248,
- 0x27efc9,
- 0x28f685,
- 0x283688,
- 0x213446,
- 0x38b30a,
- 0x24fa09,
- 0x2343c9,
- 0x2343cb,
- 0x364b88,
- 0x349c49,
- 0x211586,
- 0x2b074a,
- 0x35904a,
- 0x237dcc,
- 0x367287,
- 0x2a998a,
- 0x27258b,
- 0x272599,
- 0x2da488,
- 0x242005,
- 0x25b246,
- 0x2ed389,
- 0x318e06,
- 0x21250a,
- 0x2f31c6,
- 0x212104,
- 0x2bf38d,
- 0x3412c7,
- 0x212109,
- 0x244d45,
- 0x244e88,
- 0x245389,
- 0x2455c4,
- 0x245cc7,
- 0x245cc8,
- 0x246347,
- 0x263e88,
- 0x24c807,
- 0x36f505,
- 0x2567cc,
- 0x256e89,
- 0x2d9a8a,
- 0x38ec09,
- 0x221849,
- 0x26b00c,
- 0x259b8b,
- 0x259e48,
- 0x25bac8,
- 0x25ee84,
- 0x27d9c8,
- 0x282309,
- 0x39b6c7,
- 0x21ac86,
- 0x399907,
- 0x325e89,
- 0x366ecb,
- 0x324907,
- 0x3714c7,
- 0x20acc7,
- 0x2ded04,
- 0x2ded05,
- 0x2a81c5,
- 0x337ecb,
- 0x3981c4,
- 0x319fc8,
- 0x25f4ca,
- 0x213507,
- 0x346547,
- 0x288f12,
- 0x283e06,
- 0x231ac6,
- 0x322fce,
- 0x361506,
- 0x28edc8,
- 0x28ff4f,
- 0x2df148,
- 0x284c08,
- 0x35f54a,
- 0x35f551,
- 0x2a274e,
- 0x23be4a,
- 0x23be4c,
- 0x230087,
- 0x230090,
- 0x204ac8,
- 0x2a2945,
- 0x2aad0a,
- 0x20614c,
- 0x2b3e0d,
- 0x2ac3c6,
- 0x2ac3c7,
- 0x2ac3cc,
- 0x2efc8c,
- 0x2da98c,
- 0x28c98b,
- 0x283044,
- 0x21b644,
- 0x3741c9,
- 0x2d72c7,
- 0x2e94c9,
- 0x358e89,
- 0x36bb47,
- 0x39b486,
- 0x39b489,
- 0x3a4a43,
- 0x2a208a,
- 0x29e7c7,
- 0x30b6cb,
- 0x21750a,
- 0x23a9c4,
- 0x353e86,
- 0x27a309,
- 0x30ec04,
- 0x3a20ca,
- 0x228e45,
- 0x2b6485,
- 0x2b648d,
- 0x2b67ce,
- 0x39f105,
- 0x3167c6,
- 0x241b87,
- 0x26748a,
- 0x39a446,
- 0x35a2c4,
- 0x35e2c7,
- 0x210ecb,
- 0x22ef87,
- 0x202104,
- 0x265d46,
- 0x265d4d,
- 0x325b4c,
- 0x32fd86,
- 0x38d7ca,
- 0x225806,
- 0x210288,
- 0x263507,
- 0x23660a,
- 0x23c3c6,
- 0x211a83,
- 0x251186,
- 0x203e88,
- 0x296a8a,
- 0x24aa47,
- 0x24aa48,
- 0x267b84,
- 0x27b2c7,
- 0x2c4108,
- 0x2a3648,
- 0x286808,
- 0x27fa0a,
- 0x2cf145,
- 0x2cf3c7,
- 0x23bc93,
- 0x22d206,
- 0x2b1648,
- 0x224709,
- 0x241688,
- 0x216f0b,
- 0x2b7848,
- 0x211004,
- 0x2a1e46,
- 0x3b3106,
- 0x2d9509,
- 0x385c07,
- 0x2568c8,
- 0x287bc6,
- 0x3a17c4,
- 0x2c2e45,
- 0x2bdc88,
- 0x2be28a,
- 0x2bf008,
- 0x2c3906,
- 0x29718a,
- 0x233588,
- 0x2c8548,
- 0x2c9908,
- 0x2c9f46,
- 0x2cc006,
- 0x31098c,
- 0x2cc5d0,
- 0x286fc5,
- 0x2def48,
- 0x2f8310,
- 0x2def50,
- 0x20bace,
- 0x31060e,
- 0x310614,
- 0x31d9cf,
- 0x31dd86,
- 0x342211,
- 0x349e53,
- 0x34a2c8,
- 0x27fd45,
- 0x358288,
- 0x20f985,
- 0x22b24c,
- 0x24bf89,
- 0x2388c9,
- 0x399687,
- 0x240589,
- 0x215a47,
- 0x2b9d86,
- 0x37f447,
- 0x20c185,
- 0x212043,
- 0x24f2c9,
- 0x217a49,
- 0x379ac3,
- 0x3aabc4,
- 0x34ae4d,
- 0x3558cf,
- 0x2fe005,
- 0x31aa06,
- 0x20cfc7,
- 0x21d5c7,
- 0x285d86,
- 0x285d8b,
- 0x2a3bc5,
- 0x258ac6,
- 0x208487,
- 0x26d109,
- 0x2de6c6,
- 0x364505,
- 0x21c08b,
- 0x22e946,
- 0x246045,
- 0x27e148,
- 0x2d8748,
- 0x2ca44c,
- 0x2ca450,
- 0x2ce7c9,
- 0x2d5587,
- 0x2f6c4b,
- 0x2d5d46,
- 0x2d7bca,
- 0x2d928b,
- 0x2d9d0a,
- 0x2d9f86,
- 0x2daf45,
- 0x307f46,
- 0x274f88,
- 0x39974a,
- 0x370b1c,
- 0x2e1acc,
- 0x2e1dc8,
- 0x241f85,
- 0x2e42c7,
- 0x29b706,
- 0x273c45,
- 0x21dd86,
- 0x285f48,
- 0x2b5907,
- 0x29b9c8,
- 0x29a30a,
- 0x3212cc,
- 0x321549,
- 0x224a87,
- 0x282844,
- 0x244386,
- 0x28478a,
- 0x358f85,
- 0x3637cc,
- 0x364f08,
- 0x360d08,
- 0x3b188c,
- 0x20c8cc,
- 0x20da49,
- 0x20dc87,
- 0x22d34c,
- 0x29d284,
- 0x2e83ca,
- 0x2ad2cc,
- 0x26eb4b,
- 0x39070b,
- 0x3a5946,
- 0x23c107,
- 0x2302c7,
- 0x2302cf,
- 0x2f0c11,
- 0x3b3a12,
- 0x23c90d,
- 0x23c90e,
- 0x23cc4e,
- 0x31db88,
- 0x31db92,
- 0x23ea88,
- 0x201407,
- 0x248bca,
- 0x20d888,
- 0x3614c5,
- 0x371c0a,
- 0x220987,
- 0x2da0c4,
- 0x202b43,
- 0x311185,
- 0x35f7c7,
- 0x39fe87,
- 0x2b400e,
- 0x3366cd,
- 0x338149,
- 0x20dfc5,
- 0x35d103,
- 0x24ea46,
- 0x36fb85,
- 0x271a48,
- 0x2b2449,
- 0x25b285,
- 0x25b28f,
- 0x2dad87,
- 0x2f78c5,
- 0x306b0a,
- 0x27fc06,
- 0x23dd09,
- 0x2ea18c,
- 0x2ebe09,
- 0x378a86,
- 0x25f2cc,
- 0x2ec206,
- 0x2ef3c8,
- 0x2ef5c6,
- 0x2da606,
- 0x280604,
- 0x25a1c3,
- 0x35760a,
- 0x369111,
- 0x38c04a,
- 0x3627c5,
- 0x2a64c7,
- 0x253647,
- 0x2c4204,
- 0x2c420b,
- 0x318788,
- 0x2b3006,
- 0x2c75c5,
- 0x38b604,
- 0x262b49,
- 0x29f2c4,
- 0x21da87,
- 0x322045,
- 0x322047,
- 0x323205,
- 0x2a8d03,
- 0x2012c8,
- 0x27f30a,
- 0x23fd43,
- 0x28108a,
- 0x26db46,
- 0x25b00f,
- 0x356849,
- 0x3b14d0,
- 0x2e22c8,
- 0x2c45c9,
- 0x293287,
- 0x265ccf,
- 0x3aecc4,
- 0x22d704,
- 0x219f46,
- 0x222b86,
- 0x3a5dca,
- 0x3903c6,
- 0x33eb87,
- 0x2f6fc8,
- 0x2f71c7,
- 0x2f7bc7,
- 0x34b94a,
- 0x2fa14b,
- 0x38e7c5,
- 0x3b3648,
- 0x238b83,
- 0x261d0c,
- 0x212f4f,
- 0x2594cd,
- 0x2bb187,
- 0x338289,
- 0x22f4c7,
- 0x25a288,
- 0x38274c,
- 0x2a6c48,
- 0x252cc8,
- 0x30c28e,
- 0x31f814,
- 0x31fd24,
- 0x33f28a,
- 0x35a54b,
- 0x215b04,
- 0x215b09,
- 0x330288,
- 0x244545,
- 0x24ec0a,
- 0x36b187,
- 0x307e44,
- 0x323ac3,
- 0x22d183,
- 0x2374c4,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x202243,
- 0x211003,
- 0x2cc5c6,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x21bd03,
- 0x200882,
- 0x323ac3,
- 0x216582,
- 0x22d183,
- 0x2374c4,
- 0x2343c3,
- 0x21eb03,
- 0x202243,
- 0x2cc5c6,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x200882,
- 0x2f5003,
- 0x216582,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x202ec2,
- 0x200482,
- 0x216582,
- 0x22d183,
- 0x22b782,
- 0x200a82,
- 0x201604,
- 0x307b04,
- 0x219382,
- 0x212444,
- 0x201502,
- 0x2264c3,
+ 0x27d546,
+ 0x2d36cb,
+ 0x297c05,
+ 0x244d85,
+ 0x27dc45,
+ 0x366f46,
+ 0x20ac03,
+ 0x241946,
+ 0x277507,
+ 0x2c4a05,
+ 0x24c705,
+ 0x3645c5,
+ 0x327346,
+ 0x31da84,
+ 0x31da86,
+ 0x3add49,
+ 0x366dcc,
+ 0x37a948,
+ 0x33f004,
+ 0x2fa886,
+ 0x2a1e06,
+ 0x29bec8,
+ 0x218808,
+ 0x366cc9,
+ 0x3b1987,
+ 0x245989,
+ 0x254106,
+ 0x22c2c4,
+ 0x20bf04,
+ 0x286cc4,
+ 0x285b88,
+ 0x20290a,
+ 0x3477c6,
+ 0x352107,
+ 0x36f007,
+ 0x2d4505,
+ 0x2a7084,
+ 0x2913c6,
+ 0x2b6e46,
+ 0x202803,
+ 0x308d87,
+ 0x368b48,
+ 0x3a1aca,
+ 0x2ce348,
+ 0x2cec88,
+ 0x35af05,
+ 0x253245,
+ 0x26df85,
+ 0x2d48c6,
+ 0x33d4c6,
+ 0x35bd05,
+ 0x2969c9,
+ 0x2a6e8c,
+ 0x26e047,
+ 0x29de88,
+ 0x381a45,
+ 0x68a8c4,
+ 0x24df84,
+ 0x25d784,
+ 0x214486,
+ 0x2a450e,
+ 0x205947,
+ 0x2c41c5,
+ 0x2abfcc,
+ 0x231287,
+ 0x216207,
+ 0x218089,
+ 0x218f89,
+ 0x28a645,
+ 0x308f48,
+ 0x24d609,
+ 0x334005,
+ 0x2c4948,
+ 0x322906,
+ 0x361f06,
+ 0x2e4444,
+ 0x2ae848,
+ 0x251f43,
+ 0x303084,
+ 0x2b37c5,
+ 0x3ac0c7,
+ 0x210445,
+ 0x39bbc9,
+ 0x28aa8d,
+ 0x299886,
+ 0x245404,
+ 0x2937c8,
+ 0x27d00a,
+ 0x224107,
+ 0x23be45,
+ 0x203143,
+ 0x2a37ce,
+ 0x27868c,
+ 0x2faa87,
+ 0x2a46c7,
+ 0x203c03,
+ 0x224f45,
+ 0x25d785,
+ 0x29e9c8,
+ 0x29bb89,
+ 0x33ef06,
+ 0x247444,
+ 0x249b86,
+ 0x21e3cb,
+ 0x2cd1cc,
+ 0x221507,
+ 0x2d5c45,
+ 0x3ad988,
+ 0x2e0b85,
+ 0x2c2307,
+ 0x3630c7,
+ 0x251f45,
+ 0x20ac03,
+ 0x39a644,
+ 0x212905,
+ 0x351805,
+ 0x351806,
+ 0x34fd08,
+ 0x216287,
+ 0x319646,
+ 0x35c106,
+ 0x3a1406,
+ 0x2d5e89,
+ 0x20f847,
+ 0x26a5c6,
+ 0x2cd346,
+ 0x252006,
+ 0x2aeb45,
+ 0x219646,
+ 0x3768c5,
+ 0x228848,
+ 0x2973cb,
+ 0x291086,
+ 0x36f044,
+ 0x2e2909,
+ 0x25b284,
+ 0x322888,
+ 0x2324c7,
+ 0x2885c4,
+ 0x2be288,
+ 0x2c5304,
+ 0x2aeb84,
+ 0x28b145,
+ 0x35e286,
+ 0x34f387,
+ 0x239b43,
+ 0x2a2a85,
+ 0x322e84,
+ 0x358586,
+ 0x3a1a08,
+ 0x368885,
+ 0x297089,
+ 0x3363c5,
+ 0x2e1e88,
+ 0x215207,
+ 0x388dc8,
+ 0x2bd787,
+ 0x362709,
+ 0x255a86,
+ 0x32b3c6,
+ 0x359004,
+ 0x293605,
+ 0x30150c,
+ 0x27dc47,
+ 0x27e207,
+ 0x36eec8,
+ 0x299886,
+ 0x277444,
+ 0x32e344,
+ 0x286849,
+ 0x2c84c6,
+ 0x240987,
+ 0x3a8bc4,
+ 0x286086,
+ 0x343905,
+ 0x2cbb07,
+ 0x2d3646,
+ 0x252d49,
+ 0x2aab07,
+ 0x26f8c7,
+ 0x2a6246,
+ 0x3879c5,
+ 0x283988,
+ 0x219b08,
+ 0x2646c6,
+ 0x3688c5,
+ 0x261b06,
+ 0x209983,
+ 0x29e849,
+ 0x2a2b4e,
+ 0x2bd488,
+ 0x2314c8,
+ 0x2644cb,
+ 0x2972c6,
+ 0x2089c4,
+ 0x244ac4,
+ 0x2a2c4a,
+ 0x216907,
+ 0x26a685,
+ 0x213bc9,
+ 0x2c3285,
+ 0x3a1087,
+ 0x2b4c04,
+ 0x284487,
+ 0x2e65c8,
+ 0x2cb206,
+ 0x21e789,
+ 0x2beaca,
+ 0x216886,
+ 0x29c8c6,
+ 0x2b1945,
+ 0x37ccc5,
+ 0x31a107,
+ 0x24dd08,
+ 0x343848,
+ 0x395fc6,
+ 0x234145,
+ 0x208ace,
+ 0x2b8bc4,
+ 0x264645,
+ 0x27c749,
+ 0x30dfc8,
+ 0x28f0c6,
+ 0x2a04cc,
+ 0x2a1410,
+ 0x2a414f,
+ 0x2a51c8,
+ 0x3363c7,
+ 0x200045,
+ 0x26fd05,
+ 0x34f209,
+ 0x298a89,
+ 0x23cbc6,
+ 0x278307,
+ 0x2d2805,
+ 0x21b509,
+ 0x340146,
+ 0x224d4d,
+ 0x286b89,
+ 0x202ec4,
+ 0x2bd208,
+ 0x2113c9,
+ 0x347986,
+ 0x27cec5,
+ 0x32b3c6,
+ 0x317849,
+ 0x26ba08,
+ 0x212485,
+ 0x2ae844,
+ 0x2a068b,
+ 0x347845,
+ 0x2a07c6,
+ 0x287586,
+ 0x26ed86,
+ 0x287fcb,
+ 0x297189,
+ 0x35c045,
+ 0x388b87,
+ 0x363206,
+ 0x220f06,
+ 0x25d508,
+ 0x35e389,
+ 0x219e8c,
+ 0x30a648,
+ 0x360406,
+ 0x340bc3,
+ 0x303c06,
+ 0x287e05,
+ 0x281948,
+ 0x233b46,
+ 0x2cbd48,
+ 0x275845,
+ 0x29dfc5,
+ 0x215348,
+ 0x31a947,
+ 0x319287,
+ 0x247fc7,
+ 0x220d88,
+ 0x336508,
+ 0x31e4c6,
+ 0x2b7687,
+ 0x247987,
+ 0x287cca,
+ 0x254003,
+ 0x366f46,
+ 0x202a45,
+ 0x203bc4,
+ 0x27f889,
+ 0x362684,
+ 0x2a7e44,
+ 0x2a1c84,
+ 0x2a46cb,
+ 0x211547,
+ 0x208d05,
+ 0x29ab08,
+ 0x27cdc6,
+ 0x27cdc8,
+ 0x280dc6,
+ 0x2900c5,
+ 0x290385,
+ 0x291f46,
+ 0x292b08,
+ 0x292dc8,
+ 0x27fa46,
+ 0x29a94f,
+ 0x29e310,
+ 0x3b1785,
+ 0x204083,
+ 0x22c385,
+ 0x30b188,
+ 0x298989,
+ 0x334148,
+ 0x2d5d08,
+ 0x224788,
+ 0x211607,
+ 0x27ca89,
+ 0x2cbf48,
+ 0x25bd44,
+ 0x2a1b08,
+ 0x2deb49,
+ 0x2b81c7,
+ 0x29f904,
+ 0x303f08,
+ 0x387cca,
+ 0x2ebe06,
+ 0x2a4dc6,
+ 0x21f5c9,
+ 0x2a1647,
+ 0x2ce1c8,
+ 0x30cc88,
+ 0x3a8a48,
+ 0x356245,
+ 0x37dc45,
+ 0x244d85,
+ 0x25d745,
+ 0x37e287,
+ 0x20ac05,
+ 0x2c4a05,
+ 0x2b5546,
+ 0x334087,
+ 0x2d1807,
+ 0x387fc6,
+ 0x2d7405,
+ 0x2a07c6,
+ 0x212245,
+ 0x2b84c8,
+ 0x2f1d84,
+ 0x2c7686,
+ 0x343744,
+ 0x2b69c8,
+ 0x2c778a,
+ 0x28004c,
+ 0x234bc5,
+ 0x2c4086,
+ 0x21a046,
+ 0x368706,
+ 0x30b384,
+ 0x343bc5,
+ 0x280c07,
+ 0x2a16c9,
+ 0x2cdc87,
+ 0x68a8c4,
+ 0x68a8c4,
+ 0x3175c5,
+ 0x32dd04,
+ 0x29fe8a,
+ 0x27cc46,
+ 0x24d404,
+ 0x208305,
+ 0x37a545,
+ 0x2b6d44,
+ 0x2871c7,
+ 0x36b847,
+ 0x2cd788,
+ 0x368ec8,
+ 0x212489,
+ 0x340248,
+ 0x2a004b,
+ 0x250b44,
+ 0x221005,
+ 0x2840c5,
+ 0x247f49,
+ 0x35e389,
+ 0x2e2808,
+ 0x232248,
+ 0x203084,
+ 0x2a1e45,
+ 0x202943,
+ 0x264845,
+ 0x38ed06,
+ 0x29b9cc,
+ 0x20f4c6,
+ 0x247246,
+ 0x28f345,
+ 0x3273c8,
+ 0x2bd606,
+ 0x2ea346,
+ 0x2a4dc6,
+ 0x2297cc,
+ 0x2ba544,
+ 0x3a154a,
+ 0x28f288,
+ 0x29b807,
+ 0x322d86,
+ 0x33efc7,
+ 0x2f2185,
+ 0x343e06,
+ 0x34af86,
+ 0x356707,
+ 0x2be7c4,
+ 0x3676c5,
+ 0x27c744,
+ 0x37ac87,
+ 0x27c988,
+ 0x27d84a,
+ 0x284a07,
+ 0x2d22c7,
+ 0x336347,
+ 0x2e0cc9,
+ 0x29b9ca,
+ 0x219e43,
+ 0x2e9645,
+ 0x200c83,
+ 0x2e8cc9,
+ 0x26ac48,
+ 0x38eb47,
+ 0x334249,
+ 0x219c06,
+ 0x2d4108,
+ 0x337f85,
+ 0x2e16ca,
+ 0x2d8c49,
+ 0x2abc49,
+ 0x3aea07,
+ 0x283049,
+ 0x214a08,
+ 0x3568c6,
+ 0x2c4248,
+ 0x217b07,
+ 0x235c87,
+ 0x277787,
+ 0x2d2688,
+ 0x2fa706,
+ 0x387a85,
+ 0x280c07,
+ 0x29c3c8,
+ 0x3436c4,
+ 0x30e3c4,
+ 0x294047,
+ 0x2b2d47,
+ 0x24d48a,
+ 0x356846,
+ 0x330f0a,
+ 0x2c34c7,
+ 0x2b8987,
+ 0x257e44,
+ 0x289204,
+ 0x2d3546,
+ 0x3b3d44,
+ 0x3b3d4c,
+ 0x203505,
+ 0x218649,
+ 0x2dfc44,
+ 0x2b6e05,
+ 0x27cf88,
+ 0x292e85,
+ 0x375846,
+ 0x217f84,
+ 0x3ae3ca,
+ 0x32b7c6,
+ 0x2a68ca,
+ 0x237f07,
+ 0x2d3385,
+ 0x21c985,
+ 0x2d454a,
+ 0x2a6805,
+ 0x2a4cc6,
+ 0x208484,
+ 0x2b5106,
+ 0x31a1c5,
+ 0x233c06,
+ 0x2e88cc,
+ 0x2cd90a,
+ 0x2936c4,
+ 0x235ec6,
+ 0x2a1647,
+ 0x2d5204,
+ 0x25b448,
+ 0x38e5c6,
+ 0x208949,
+ 0x2bb109,
+ 0x2b0689,
+ 0x24f346,
+ 0x217c06,
+ 0x2c4387,
+ 0x296908,
+ 0x217a09,
+ 0x211547,
+ 0x29ac86,
+ 0x3872c7,
+ 0x28b985,
+ 0x2b8bc4,
+ 0x2c3f47,
+ 0x247b45,
+ 0x28b085,
+ 0x235247,
+ 0x251e08,
+ 0x3ad906,
+ 0x29d24d,
+ 0x29ebcf,
+ 0x2a360d,
+ 0x215f84,
+ 0x232cc6,
+ 0x2d91c8,
+ 0x358fc5,
+ 0x287e88,
+ 0x23a58a,
+ 0x202ec4,
+ 0x21e946,
+ 0x239607,
+ 0x22d9c7,
+ 0x2a79c9,
+ 0x2c4205,
+ 0x2b6d44,
+ 0x2b8cca,
+ 0x2be589,
+ 0x283147,
+ 0x272086,
+ 0x347986,
+ 0x2a1d86,
+ 0x364046,
+ 0x2d890f,
+ 0x2d9089,
+ 0x27d546,
+ 0x282e46,
+ 0x32fd89,
+ 0x2b7787,
+ 0x226743,
+ 0x229946,
+ 0x218303,
+ 0x2e7dc8,
+ 0x387107,
+ 0x2a53c9,
+ 0x29f208,
+ 0x3193c8,
+ 0x351446,
+ 0x20f409,
+ 0x23c1c5,
+ 0x2b7844,
+ 0x2a73c7,
+ 0x273285,
+ 0x215f84,
+ 0x208dc8,
+ 0x216bc4,
+ 0x2b74c7,
+ 0x34bc06,
+ 0x2b3045,
+ 0x299188,
+ 0x34784b,
+ 0x319c07,
+ 0x2d47c6,
+ 0x2c82c4,
+ 0x32d146,
+ 0x270f45,
+ 0x247b45,
+ 0x283709,
+ 0x286dc9,
+ 0x235cc4,
+ 0x235d05,
+ 0x235f05,
+ 0x2e1546,
+ 0x309048,
+ 0x2c2c46,
+ 0x36898b,
+ 0x2b4c8a,
+ 0x2b6905,
+ 0x290406,
+ 0x3025c5,
+ 0x2e0a45,
+ 0x2ab6c7,
+ 0x3ac808,
+ 0x245984,
+ 0x26c586,
+ 0x292e46,
+ 0x214bc7,
+ 0x30d7c4,
+ 0x2817c6,
+ 0x2b9f85,
+ 0x2b9f89,
+ 0x2135c4,
+ 0x2a7209,
+ 0x27fa46,
+ 0x2c5108,
+ 0x235f05,
+ 0x36f105,
+ 0x233c06,
+ 0x219d89,
+ 0x218f89,
+ 0x2472c6,
+ 0x30e0c8,
+ 0x28abc8,
+ 0x302584,
+ 0x2b9004,
+ 0x2b9008,
+ 0x3269c8,
+ 0x245a89,
+ 0x38ec86,
+ 0x2a4dc6,
+ 0x320c0d,
+ 0x351c06,
+ 0x34c209,
+ 0x23d1c5,
+ 0x3b2106,
+ 0x262d48,
+ 0x31d9c5,
+ 0x2479c4,
+ 0x270f45,
+ 0x2866c8,
+ 0x29fc49,
+ 0x27c804,
+ 0x2008c6,
+ 0x39660a,
+ 0x2fa988,
+ 0x24d609,
+ 0x244c4a,
+ 0x3341c6,
+ 0x29ed88,
+ 0x2c20c5,
+ 0x2c0e48,
+ 0x2bd885,
+ 0x219ac9,
+ 0x36bd09,
+ 0x203602,
+ 0x2e3305,
+ 0x276286,
+ 0x27f987,
+ 0x295705,
+ 0x2f0ec6,
+ 0x306288,
+ 0x299886,
+ 0x2b9a09,
+ 0x27e306,
+ 0x25d388,
+ 0x2afb85,
+ 0x25c586,
+ 0x26aac8,
+ 0x285b88,
+ 0x2e9f88,
+ 0x347b08,
+ 0x219644,
+ 0x209fc3,
+ 0x2b9c44,
+ 0x249b06,
+ 0x28b9c4,
+ 0x231407,
+ 0x2ea249,
+ 0x2c7a05,
+ 0x30cc86,
+ 0x229946,
+ 0x34fb4b,
+ 0x2b6846,
+ 0x20edc6,
+ 0x2cb6c8,
+ 0x24c646,
+ 0x2bcb03,
+ 0x2080c3,
+ 0x2b8bc4,
+ 0x22e605,
+ 0x2b4447,
+ 0x27c988,
+ 0x27c98f,
+ 0x280b0b,
+ 0x308e48,
+ 0x200946,
+ 0x30914e,
+ 0x233c03,
+ 0x2b43c4,
+ 0x2b67c5,
+ 0x2b6bc6,
+ 0x2914cb,
+ 0x297b46,
+ 0x222709,
+ 0x2b3045,
+ 0x38a208,
+ 0x211d88,
+ 0x218e4c,
+ 0x2a4706,
+ 0x264886,
+ 0x2de405,
+ 0x28c188,
+ 0x26aac5,
+ 0x335848,
+ 0x2a084a,
+ 0x2a3a49,
+ 0x68a8c4,
+ 0x3760d1c2,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x368883,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204ac3,
+ 0x200383,
+ 0x210e03,
+ 0x24ae04,
+ 0x2d0783,
+ 0x23a184,
+ 0x231b83,
+ 0x2da904,
+ 0x332ec3,
+ 0x2959c7,
+ 0x20fbc3,
+ 0x20abc3,
+ 0x2842c8,
+ 0x200383,
+ 0x2b400b,
+ 0x2f2a03,
+ 0x2716c6,
+ 0x205bc2,
+ 0x26b44b,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x200383,
+ 0x200e03,
+ 0x203383,
+ 0x204cc2,
+ 0x15f048,
+ 0x325b45,
+ 0x247bc8,
+ 0x2ec408,
+ 0x20d1c2,
+ 0x329dc5,
+ 0x39c307,
+ 0x2001c2,
+ 0x24b587,
+ 0x208a42,
+ 0x246f87,
+ 0x239ec9,
+ 0x2c1c88,
+ 0x3a88c9,
+ 0x338b02,
+ 0x270647,
+ 0x2abac4,
+ 0x39c3c7,
+ 0x2b4b87,
+ 0x24ca02,
+ 0x20fbc3,
+ 0x20b602,
+ 0x202082,
+ 0x200382,
+ 0x217902,
+ 0x200e02,
+ 0x20c4c2,
+ 0x2af685,
+ 0x24dec5,
+ 0xd1c2,
+ 0x31b83,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x117c3,
+ 0x701,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204303,
+ 0x204ac3,
+ 0x200383,
0x21bd03,
- 0x3a5946,
- 0x221e42,
- 0x206202,
- 0x224dc2,
- 0x3d224643,
- 0x3d626703,
- 0x53d46,
- 0x53d46,
- 0x224104,
- 0x140a30a,
- 0x16970c,
- 0x165f0c,
- 0x798cd,
- 0xdb7c7,
- 0x1b908,
- 0x22f08,
- 0x1a7eca,
- 0x3e31f345,
- 0x11f349,
- 0x163048,
- 0x1ac10a,
- 0x16348e,
- 0x144148b,
- 0x167404,
- 0x2988,
- 0x16e847,
- 0x178587,
- 0x112089,
- 0x10ec87,
- 0x132d48,
- 0x1a2f89,
- 0x17a845,
- 0x5074e,
- 0xa910d,
- 0x131948,
- 0x3e6d7e86,
- 0x60c47,
- 0x62607,
- 0x67347,
- 0x6c4c7,
- 0xd382,
- 0x141807,
- 0x1d34c,
- 0xeaec7,
- 0x8ddc6,
- 0xa5449,
- 0xa7188,
- 0xf1c2,
- 0xa82,
- 0x13088b,
- 0x15309,
- 0x33c49,
- 0x2b848,
- 0xb09c2,
- 0x1afb89,
- 0xccf89,
- 0xcdbc8,
- 0xce147,
- 0xcf0c9,
- 0xd2905,
- 0xd2d10,
- 0x164d46,
- 0x51f05,
- 0x23b4d,
- 0x10e846,
- 0xdc047,
- 0xe26d8,
- 0x108548,
- 0x19104a,
- 0x4114d,
- 0x1402,
- 0x161186,
- 0x89948,
- 0x180248,
- 0x87f89,
- 0x45e88,
- 0x4da0e,
- 0xe8f85,
- 0x539c8,
- 0x3282,
- 0x155646,
- 0x6c2,
- 0xb81,
- 0x3eae2f44,
- 0x3ee90c43,
+ 0x3a40d686,
+ 0x5e303,
+ 0x854c5,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x8082,
+ 0x15f048,
+ 0x4dcc4,
+ 0xe0f85,
+ 0x204cc2,
+ 0x2cfa44,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x236d03,
+ 0x2b0405,
+ 0x204303,
+ 0x205d83,
+ 0x204ac3,
+ 0x2104c3,
+ 0x200383,
+ 0x213e83,
+ 0x24ae83,
+ 0x24abc3,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x20d1c2,
+ 0x200383,
+ 0x15f048,
+ 0x332ec3,
+ 0x15f048,
+ 0x26ae03,
+ 0x2d0783,
+ 0x22ef04,
+ 0x231b83,
+ 0x332ec3,
+ 0x20a3c2,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20a3c2,
+ 0x22d603,
+ 0x204ac3,
+ 0x200383,
+ 0x2ec383,
+ 0x213e83,
+ 0x204cc2,
+ 0x20d1c2,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2716c5,
+ 0x1540c6,
+ 0x24ae04,
+ 0x205bc2,
+ 0x15f048,
+ 0x204cc2,
+ 0x1d508,
+ 0x20d1c2,
+ 0x97606,
+ 0x1681c4,
+ 0x16e1cb,
+ 0x3dc06,
+ 0xfcc7,
+ 0x231b83,
+ 0x332ec3,
+ 0x15ae05,
+ 0x19c804,
+ 0x221543,
+ 0x53fc7,
+ 0xdc304,
+ 0x204ac3,
+ 0x94fc4,
+ 0x200383,
+ 0x2f39c4,
+ 0xfe588,
+ 0x125886,
+ 0x114f85,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x20abc3,
+ 0x200383,
+ 0x2f2a03,
+ 0x205bc2,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204143,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x2da904,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2716c6,
+ 0x231b83,
+ 0x332ec3,
+ 0x178ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0xfcc7,
+ 0x15f048,
+ 0x332ec3,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x40ed0783,
+ 0x231b83,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x204cc2,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200382,
+ 0x200383,
+ 0x316e47,
+ 0x23860b,
+ 0x2396c3,
+ 0x24be08,
+ 0x296687,
+ 0x225246,
+ 0x2c6145,
+ 0x373549,
+ 0x20f948,
+ 0x260d09,
+ 0x260d10,
+ 0x35d28b,
+ 0x385989,
+ 0x209303,
+ 0x2b5649,
+ 0x230806,
+ 0x23080c,
+ 0x260f08,
+ 0x3ae848,
+ 0x35d7c9,
+ 0x2a5d0e,
+ 0x20780b,
+ 0x2eb20c,
+ 0x205283,
+ 0x26cc4c,
+ 0x205289,
+ 0x257a87,
+ 0x231acc,
+ 0x36aa8a,
+ 0x24fe44,
+ 0x393f4d,
+ 0x26cb08,
+ 0x210e0d,
+ 0x272746,
+ 0x29258b,
+ 0x31a3c9,
+ 0x23d087,
+ 0x339606,
+ 0x349d89,
+ 0x38ce8a,
+ 0x37a0c8,
+ 0x2f24c4,
+ 0x34ecc7,
+ 0x3ac5c7,
+ 0x3a8dc4,
+ 0x32d984,
+ 0x237209,
+ 0x2ceac9,
+ 0x237908,
+ 0x210b85,
+ 0x392545,
+ 0x20aa06,
+ 0x393e09,
+ 0x23a80d,
+ 0x2eac88,
+ 0x20a907,
+ 0x2c61c8,
+ 0x382986,
+ 0x37ed04,
+ 0x359b85,
+ 0x202246,
+ 0x203204,
+ 0x205187,
+ 0x206d8a,
+ 0x211cc4,
+ 0x2167c6,
+ 0x2182c9,
+ 0x2182cf,
+ 0x2197cd,
+ 0x21a486,
+ 0x21d110,
+ 0x21d506,
+ 0x21dc47,
+ 0x21ebc7,
+ 0x21ebcf,
+ 0x21f889,
+ 0x2242c6,
+ 0x226487,
+ 0x226488,
+ 0x227649,
+ 0x2b3108,
+ 0x2e7907,
+ 0x20a203,
+ 0x378c86,
+ 0x3abf08,
+ 0x2a5fca,
+ 0x21fe49,
+ 0x20fa83,
+ 0x39c206,
+ 0x26c3ca,
+ 0x2fca47,
+ 0x2578ca,
+ 0x26a24e,
+ 0x21f9c6,
+ 0x2e3507,
+ 0x227086,
+ 0x201806,
+ 0x37da4b,
+ 0x30c58a,
+ 0x317ecd,
+ 0x217cc7,
+ 0x359188,
+ 0x359189,
+ 0x35918f,
+ 0x20e28c,
+ 0x281bc9,
+ 0x2e928e,
+ 0x295aca,
+ 0x3035c6,
+ 0x2fbbc6,
+ 0x3b06cc,
+ 0x3106cc,
+ 0x311448,
+ 0x33d1c7,
+ 0x25b7c5,
+ 0x2251c4,
+ 0x2438ce,
+ 0x38d104,
+ 0x257bc7,
+ 0x26d08a,
+ 0x36e914,
+ 0x373a4f,
+ 0x21ed88,
+ 0x378b48,
+ 0x357e8d,
+ 0x357e8e,
+ 0x3823c9,
+ 0x3a5b08,
+ 0x3a5b0f,
+ 0x2317cc,
+ 0x2317cf,
+ 0x232a07,
+ 0x23acca,
+ 0x21cc4b,
+ 0x23bcc8,
+ 0x23e5c7,
+ 0x264f4d,
+ 0x3151c6,
+ 0x394106,
+ 0x2417c9,
+ 0x259888,
+ 0x24c108,
+ 0x24c10e,
+ 0x238707,
+ 0x226985,
+ 0x24da85,
+ 0x205e04,
+ 0x225506,
+ 0x237808,
+ 0x260183,
+ 0x2efb8e,
+ 0x265308,
+ 0x2f198b,
+ 0x26afc7,
+ 0x395e05,
+ 0x26cdc6,
+ 0x2b0e07,
+ 0x307048,
+ 0x319f09,
+ 0x298fc5,
+ 0x28a188,
+ 0x217306,
+ 0x3a02ca,
+ 0x2437c9,
+ 0x231b89,
+ 0x231b8b,
+ 0x201148,
+ 0x3a8c89,
+ 0x210c46,
+ 0x22c54a,
+ 0x2b7f4a,
+ 0x23aecc,
+ 0x3acb87,
+ 0x2c1a8a,
+ 0x328ecb,
+ 0x328ed9,
+ 0x30fa48,
+ 0x271745,
+ 0x265106,
+ 0x258fc9,
+ 0x261cc6,
+ 0x21324a,
+ 0x20fb46,
+ 0x201e44,
+ 0x2c9ecd,
+ 0x201e47,
+ 0x20b549,
+ 0x383305,
+ 0x24e548,
+ 0x24ee89,
+ 0x24f0c4,
+ 0x24fd47,
+ 0x24fd48,
+ 0x250287,
+ 0x26ea08,
+ 0x2545c7,
+ 0x35c2c5,
+ 0x25c70c,
+ 0x25cf49,
+ 0x2c4dca,
+ 0x38f0c9,
+ 0x2b5749,
+ 0x2739cc,
+ 0x263e0b,
+ 0x2640c8,
+ 0x265688,
+ 0x268a44,
+ 0x288288,
+ 0x289389,
+ 0x36ab47,
+ 0x218506,
+ 0x317287,
+ 0x21e1c9,
+ 0x328b0b,
+ 0x32cfc7,
+ 0x200407,
+ 0x238047,
+ 0x210d84,
+ 0x210d85,
+ 0x2ac905,
+ 0x33c00b,
+ 0x399404,
+ 0x369d08,
+ 0x26f08a,
+ 0x2173c7,
+ 0x341dc7,
+ 0x290c12,
+ 0x27ee46,
+ 0x22e886,
+ 0x35898e,
+ 0x281346,
+ 0x298708,
+ 0x29938f,
+ 0x2111c8,
+ 0x38bb08,
+ 0x3af64a,
+ 0x3af651,
+ 0x2a6b4e,
+ 0x254e4a,
+ 0x254e4c,
+ 0x2014c7,
+ 0x3a5d10,
+ 0x3b5388,
+ 0x2a6d45,
+ 0x2b114a,
+ 0x20324c,
+ 0x29afcd,
+ 0x2fce06,
+ 0x2fce07,
+ 0x2fce0c,
+ 0x305c8c,
+ 0x32814c,
+ 0x28f98b,
+ 0x289b84,
+ 0x21f744,
+ 0x374149,
+ 0x2fe3c7,
+ 0x23e389,
+ 0x2b7d89,
+ 0x35a587,
+ 0x36a906,
+ 0x36a909,
+ 0x39d403,
+ 0x2129ca,
+ 0x32f807,
+ 0x238acb,
+ 0x317d4a,
+ 0x2abb44,
+ 0x39c546,
+ 0x284c89,
+ 0x3b3bc4,
+ 0x2035ca,
+ 0x2d4ac5,
+ 0x2c0005,
+ 0x2c000d,
+ 0x2c034e,
+ 0x378205,
+ 0x323506,
+ 0x2712c7,
+ 0x38684a,
+ 0x38d406,
+ 0x35ecc4,
+ 0x2f8987,
+ 0x2da18b,
+ 0x382a47,
+ 0x282ac4,
+ 0x24f706,
+ 0x24f70d,
+ 0x21de8c,
+ 0x204986,
+ 0x2eae8a,
+ 0x235806,
+ 0x2f3248,
+ 0x28bf47,
+ 0x33f88a,
+ 0x23d986,
+ 0x217bc3,
+ 0x262ec6,
+ 0x3abd88,
+ 0x2a024a,
+ 0x2766c7,
+ 0x2766c8,
+ 0x27dd84,
+ 0x2cc0c7,
+ 0x23ccc8,
+ 0x29e008,
+ 0x288b48,
+ 0x33110a,
+ 0x2e0405,
+ 0x2e0687,
+ 0x254c93,
+ 0x2d0806,
+ 0x26f288,
+ 0x222c09,
+ 0x24b448,
+ 0x3514cb,
+ 0x2cddc8,
+ 0x273704,
+ 0x215446,
+ 0x3b4f06,
+ 0x35e0c9,
+ 0x2c72c7,
+ 0x25c808,
+ 0x29e186,
+ 0x235144,
+ 0x2ce085,
+ 0x2c8a08,
+ 0x2c900a,
+ 0x2c9b48,
+ 0x2ce746,
+ 0x29ef8a,
+ 0x351988,
+ 0x2d5008,
+ 0x2d6a88,
+ 0x2d70c6,
+ 0x2d93c6,
+ 0x20168c,
+ 0x2d99d0,
+ 0x28de45,
+ 0x210fc8,
+ 0x306790,
+ 0x210fd0,
+ 0x260b8e,
+ 0x20130e,
+ 0x201314,
+ 0x31abcf,
+ 0x31af86,
+ 0x3319d1,
+ 0x339793,
+ 0x339c08,
+ 0x3aafc5,
+ 0x35b6c8,
+ 0x385785,
+ 0x22854c,
+ 0x229489,
+ 0x282449,
+ 0x245d47,
+ 0x377009,
+ 0x243d87,
+ 0x2fadc6,
+ 0x359987,
+ 0x261245,
+ 0x211803,
+ 0x260349,
+ 0x222ec9,
+ 0x378ac3,
+ 0x39a544,
+ 0x35c40d,
+ 0x3b1b0f,
+ 0x235185,
+ 0x35b5c6,
+ 0x211b07,
+ 0x325987,
+ 0x28cd86,
+ 0x28cd8b,
+ 0x2a82c5,
+ 0x25f106,
+ 0x2fba47,
+ 0x276ec9,
+ 0x2290c6,
+ 0x22e405,
+ 0x31190b,
+ 0x23bb46,
+ 0x3724c5,
+ 0x28b548,
+ 0x321d88,
+ 0x2d75cc,
+ 0x2d75d0,
+ 0x2e0149,
+ 0x2e7107,
+ 0x30860b,
+ 0x2e6186,
+ 0x2e77ca,
+ 0x2ea4cb,
+ 0x2eb74a,
+ 0x2eb9c6,
+ 0x2ec245,
+ 0x32f546,
+ 0x27e4c8,
+ 0x245e0a,
+ 0x357b1c,
+ 0x2f2acc,
+ 0x2f2dc8,
+ 0x2716c5,
+ 0x2f4f07,
+ 0x26a106,
+ 0x27d385,
+ 0x21c2c6,
+ 0x28cf48,
+ 0x2be807,
+ 0x2a5c08,
+ 0x2e360a,
+ 0x34a10c,
+ 0x34a389,
+ 0x37ee87,
+ 0x20d244,
+ 0x24db46,
+ 0x38b68a,
+ 0x2b7e85,
+ 0x20734c,
+ 0x20b088,
+ 0x377648,
+ 0x20d98c,
+ 0x21be8c,
+ 0x2206c9,
+ 0x220907,
+ 0x342c0c,
+ 0x3aa644,
+ 0x23c54a,
+ 0x2580cc,
+ 0x278acb,
+ 0x24140b,
+ 0x241f46,
+ 0x383847,
+ 0x2ddb07,
+ 0x3a5f4f,
+ 0x2fda11,
+ 0x2ddb12,
+ 0x30d0cd,
+ 0x30d0ce,
+ 0x30d40e,
+ 0x31ad88,
+ 0x31ad92,
+ 0x252288,
+ 0x2962c7,
+ 0x25260a,
+ 0x204748,
+ 0x281305,
+ 0x37e0ca,
+ 0x21da47,
+ 0x305304,
+ 0x21b083,
+ 0x2b0fc5,
+ 0x3af8c7,
+ 0x2fea07,
+ 0x29b1ce,
+ 0x30ff4d,
+ 0x313c49,
+ 0x220c45,
+ 0x33aa03,
+ 0x25fac6,
+ 0x36ffc5,
+ 0x2f1bc8,
+ 0x30c009,
+ 0x265145,
+ 0x26514f,
+ 0x2ec087,
+ 0x373485,
+ 0x21b2ca,
+ 0x299b86,
+ 0x2f33c9,
+ 0x384d0c,
+ 0x2f99c9,
+ 0x207b06,
+ 0x26ee8c,
+ 0x340cc6,
+ 0x2fc548,
+ 0x2fc746,
+ 0x30fbc6,
+ 0x349344,
+ 0x264443,
+ 0x2b270a,
+ 0x35b211,
+ 0x281d8a,
+ 0x255d05,
+ 0x277947,
+ 0x259307,
+ 0x23cdc4,
+ 0x23cdcb,
+ 0x3a8748,
+ 0x2bd306,
+ 0x36ef45,
+ 0x3a05c4,
+ 0x291949,
+ 0x330304,
+ 0x25cd87,
+ 0x332705,
+ 0x332707,
+ 0x358bc5,
+ 0x2af743,
+ 0x296188,
+ 0x34398a,
+ 0x239b43,
+ 0x325b8a,
+ 0x3b4086,
+ 0x264ecf,
+ 0x353689,
+ 0x2efb10,
+ 0x2dee88,
+ 0x2d0e89,
+ 0x29d087,
+ 0x24f68f,
+ 0x334604,
+ 0x2da984,
+ 0x21d386,
+ 0x2b3546,
+ 0x256dca,
+ 0x383586,
+ 0x32a787,
+ 0x3055c8,
+ 0x3057c7,
+ 0x306047,
+ 0x307a4a,
+ 0x309b4b,
+ 0x3a2445,
+ 0x2dd748,
+ 0x2166c3,
+ 0x3b120c,
+ 0x37140f,
+ 0x25b5cd,
+ 0x2c4607,
+ 0x313d89,
+ 0x217687,
+ 0x23e148,
+ 0x36eb0c,
+ 0x273608,
+ 0x258908,
+ 0x3188ce,
+ 0x32bad4,
+ 0x32bfe4,
+ 0x3424ca,
+ 0x35ea8b,
+ 0x243e44,
+ 0x243e49,
+ 0x21e9c8,
+ 0x24e105,
+ 0x25fc8a,
+ 0x239d87,
+ 0x2957c4,
+ 0x368883,
+ 0x2d0783,
+ 0x23a184,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204303,
+ 0x20fbc3,
+ 0x201686,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x21aa03,
+ 0x204cc2,
+ 0x368883,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x23a184,
+ 0x231b83,
+ 0x332ec3,
+ 0x204303,
+ 0x201686,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x204cc2,
+ 0x21fd43,
+ 0x20d1c2,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x20e542,
+ 0x20d882,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x209c02,
+ 0x201d42,
+ 0x2964c4,
+ 0x222044,
+ 0x223342,
+ 0x213184,
+ 0x200382,
+ 0x200383,
+ 0x21aa03,
+ 0x241f46,
+ 0x217082,
+ 0x2016c2,
+ 0x201a82,
+ 0x436111c3,
+ 0x43a014c3,
+ 0x59a86,
+ 0x59a86,
+ 0x24ae04,
+ 0x143768a,
+ 0x2608c,
+ 0x21ecc,
+ 0x852cd,
+ 0x2ac47,
+ 0x1a608,
+ 0x218c8,
+ 0x19834a,
+ 0x446db445,
+ 0x12b089,
+ 0x103008,
+ 0x8ed4a,
+ 0x14a60e,
+ 0x144b24b,
+ 0x1681c4,
+ 0x1672c8,
+ 0x13edc7,
+ 0x16f07,
+ 0x11dd09,
+ 0x1b3c47,
+ 0x94b88,
+ 0x61f49,
+ 0x4bfc5,
+ 0x12494e,
+ 0xafbcd,
+ 0xfb48,
+ 0x44a37046,
+ 0x45437048,
+ 0x79c88,
+ 0x117050,
+ 0x69c87,
+ 0x6cf47,
+ 0x71187,
+ 0x75f87,
+ 0xa9c2,
+ 0x62507,
+ 0x10c74c,
+ 0x3b9c7,
+ 0xa9f46,
+ 0xaa689,
+ 0xad708,
+ 0x18d82,
+ 0x1d42,
+ 0x24a0b,
+ 0x2ccc9,
+ 0x4c809,
+ 0x17de88,
+ 0xb5e02,
+ 0x104389,
+ 0xd2fca,
+ 0xdb9c9,
+ 0xdd048,
+ 0xddfc7,
+ 0xe0389,
+ 0xe4685,
+ 0xe4a90,
+ 0x1a8e86,
+ 0x63c85,
+ 0x4a84d,
+ 0x1b3806,
+ 0xee547,
+ 0xf39d8,
+ 0x96b88,
+ 0xba9ca,
+ 0x53b4d,
+ 0x1702,
+ 0x177ac6,
+ 0x91788,
+ 0x1ae208,
+ 0x15ef09,
+ 0x56608,
+ 0x5dece,
+ 0xd68d,
+ 0xf8805,
+ 0x62288,
+ 0x59688,
+ 0x6902,
+ 0x125886,
+ 0x6c82,
+ 0x3c1,
+ 0x8b4c3,
+ 0x44ef4244,
+ 0x4529a283,
0x141,
- 0x1650c6,
+ 0x15c06,
0x141,
0x1,
- 0x1650c6,
- 0x14f60c5,
- 0x245dc4,
- 0x22d183,
- 0x247344,
- 0x201604,
- 0x238483,
- 0x2245c5,
- 0x21ca03,
- 0x215cc3,
- 0x2e9cc5,
- 0x223ec3,
- 0x3fe2d183,
- 0x2343c3,
- 0x21eb03,
+ 0x15c06,
+ 0x8b4c3,
+ 0x14e4285,
+ 0x24fe44,
+ 0x2d0783,
+ 0x251304,
+ 0x2964c4,
+ 0x204ac3,
+ 0x222ac5,
+ 0x21bd03,
+ 0x2202c3,
+ 0x370145,
+ 0x24abc3,
+ 0x466d0783,
+ 0x231b83,
+ 0x332ec3,
0x200041,
- 0x211003,
- 0x307b04,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x217643,
- 0x880c8,
- 0x200882,
- 0x323ac3,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x200a82,
- 0x201604,
- 0x202243,
- 0x211003,
- 0x238483,
- 0x2025c3,
- 0x2264c3,
- 0x223ec3,
- 0x880c8,
- 0x38bcc2,
- 0x16582,
- 0x1462d48,
- 0xf738e,
- 0x40e00142,
- 0x29e988,
- 0x227fc6,
- 0x2bb546,
- 0x227947,
- 0x41201102,
- 0x417566c8,
- 0x3af8ca,
- 0x2606c8,
- 0x201002,
- 0x29e609,
- 0x38e807,
- 0x21ac06,
- 0x201009,
- 0x254704,
- 0x2f5fc6,
- 0x2d5fc4,
- 0x273a04,
- 0x2563c9,
- 0x281786,
- 0x2e3d85,
- 0x220e45,
- 0x3a5287,
- 0x2b7cc7,
- 0x243884,
- 0x227b86,
- 0x39fac5,
- 0x202b05,
- 0x2f5905,
- 0x392547,
- 0x366785,
- 0x308bc9,
- 0x2808c5,
- 0x2d07c4,
- 0x39a387,
- 0x30584e,
- 0x30fc49,
- 0x322e89,
- 0x348986,
- 0x31e708,
- 0x2b024b,
- 0x2d210c,
- 0x25b946,
- 0x37cb07,
- 0x209805,
- 0x20f24a,
- 0x20a689,
- 0x252249,
- 0x293d86,
- 0x2ee6c5,
- 0x28b145,
- 0x361f09,
- 0x2f5a8b,
- 0x277606,
- 0x32e5c6,
- 0x20d2c4,
- 0x288bc6,
- 0x25f948,
- 0x203d06,
- 0x3a82c6,
- 0x208bc8,
- 0x2093c7,
- 0x209589,
- 0x20c445,
- 0x880c8,
- 0x378504,
- 0x229e04,
- 0x212d45,
- 0x395589,
- 0x223707,
- 0x22370b,
- 0x2255ca,
- 0x22b185,
- 0x41a0b602,
- 0x2173c7,
- 0x41e2c488,
- 0x2833c7,
- 0x281ac5,
- 0x32594a,
- 0x16582,
- 0x24b90b,
- 0x2adc4a,
- 0x2248c6,
- 0x3a31c3,
- 0x230dcd,
- 0x3320cc,
- 0x36210d,
- 0x3845c5,
- 0x237205,
- 0x24f147,
- 0x3a8e89,
- 0x3af7c6,
- 0x390245,
- 0x2ee3c8,
- 0x288ac3,
- 0x2e8108,
- 0x288ac8,
- 0x2bc507,
- 0x2e62c8,
- 0x3af3c9,
- 0x236107,
- 0x20ae07,
- 0x335048,
- 0x253384,
- 0x253387,
- 0x266a88,
- 0x205846,
- 0x3661cf,
- 0x215507,
- 0x2e3506,
- 0x25a405,
- 0x224f43,
- 0x372207,
- 0x36e143,
- 0x246506,
- 0x247f86,
- 0x249686,
- 0x28d1c5,
- 0x263e83,
- 0x3885c8,
- 0x370489,
- 0x38124b,
- 0x249808,
- 0x24c4c5,
- 0x24d4c5,
- 0x4223aa82,
- 0x37f509,
- 0x201687,
- 0x258b45,
- 0x2562c7,
- 0x257e06,
- 0x35eb05,
- 0x36f9cb,
- 0x259e44,
- 0x260285,
- 0x2603c7,
- 0x271986,
- 0x271fc5,
- 0x27dbc7,
- 0x27e647,
- 0x26db04,
- 0x2871ca,
- 0x287688,
- 0x3685c9,
- 0x3a65c5,
- 0x333386,
- 0x25fb0a,
- 0x220d46,
- 0x24bb47,
- 0x318a8d,
- 0x2273c9,
- 0x30ff45,
- 0x24ff87,
- 0x335608,
- 0x3675c8,
- 0x341b87,
- 0x34a486,
- 0x2116c7,
- 0x247883,
- 0x337ec4,
- 0x35c385,
- 0x38cac7,
- 0x391f49,
- 0x21a6c8,
- 0x22fd05,
- 0x382a04,
- 0x240e85,
- 0x2448cd,
- 0x201142,
- 0x3006c6,
- 0x3610c6,
- 0x2bde4a,
- 0x3791c6,
- 0x37fc45,
- 0x319285,
- 0x319287,
- 0x38b14c,
- 0x26fb8a,
- 0x288886,
- 0x29e445,
- 0x288a06,
+ 0x20fbc3,
+ 0x222044,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x213e83,
+ 0x15f048,
+ 0x204cc2,
+ 0x368883,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x201d42,
+ 0x2964c4,
+ 0x204303,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x20abc3,
+ 0x200383,
+ 0x24abc3,
+ 0x15f048,
+ 0x371182,
+ 0xd1c2,
+ 0x1491b48,
+ 0x10598e,
+ 0x47608c42,
+ 0x32f9c8,
+ 0x233d86,
+ 0x210186,
+ 0x233707,
+ 0x47a00902,
+ 0x47f53508,
+ 0x20ebca,
+ 0x269708,
+ 0x201442,
+ 0x32f649,
+ 0x3a2487,
+ 0x218486,
+ 0x295ec9,
+ 0x247ec4,
+ 0x2e4186,
+ 0x2e1bc4,
+ 0x26bdc4,
+ 0x25bf49,
+ 0x326286,
+ 0x24df85,
+ 0x291285,
+ 0x390387,
+ 0x2c3747,
+ 0x2911c4,
+ 0x233946,
+ 0x2ffb45,
+ 0x367445,
+ 0x302505,
+ 0x392307,
+ 0x26ae05,
+ 0x315e49,
+ 0x32d305,
+ 0x307184,
+ 0x38d347,
+ 0x32ecce,
+ 0x330a09,
+ 0x358849,
+ 0x3ac9c6,
+ 0x2fe248,
+ 0x2b520b,
+ 0x2e3b0c,
+ 0x2898c6,
+ 0x2076c7,
+ 0x37b305,
+ 0x32d98a,
+ 0x237a09,
+ 0x3aa989,
+ 0x257646,
+ 0x2fb805,
+ 0x2aabc5,
+ 0x348f89,
+ 0x30268b,
+ 0x280f46,
+ 0x338346,
+ 0x20a904,
+ 0x2908c6,
+ 0x226a08,
+ 0x3abc06,
+ 0x20c5c6,
+ 0x206188,
+ 0x207f47,
+ 0x208649,
+ 0x209705,
+ 0x15f048,
+ 0x216e84,
+ 0x33d5c4,
+ 0x369f05,
+ 0x204f49,
+ 0x222347,
+ 0x22234b,
+ 0x223e4a,
+ 0x228485,
+ 0x4820a002,
+ 0x238987,
+ 0x48629248,
+ 0x27be07,
+ 0x2bf945,
+ 0x3aac0a,
+ 0xd1c2,
+ 0x38740b,
+ 0x25470a,
+ 0x222dc6,
+ 0x395e03,
+ 0x29538d,
+ 0x3582cc,
+ 0x37f24d,
+ 0x381085,
+ 0x227dc5,
+ 0x2601c7,
+ 0x209c09,
+ 0x20eac6,
+ 0x383405,
+ 0x2d8008,
+ 0x2907c3,
+ 0x2ec708,
+ 0x2907c8,
+ 0x2c6c47,
+ 0x3b2448,
+ 0x39b7c9,
+ 0x2c9747,
+ 0x238187,
+ 0x302b88,
+ 0x38ca44,
+ 0x38ca47,
+ 0x272648,
+ 0x2024c6,
+ 0x206fcf,
+ 0x2118c7,
+ 0x2e7a86,
+ 0x23e2c5,
+ 0x223783,
+ 0x365a47,
+ 0x36da03,
+ 0x250446,
+ 0x251c46,
+ 0x252a06,
+ 0x296e85,
+ 0x26ea03,
+ 0x388a48,
+ 0x370c89,
+ 0x37ffcb,
+ 0x252b88,
+ 0x254285,
+ 0x256405,
+ 0x48aabc02,
+ 0x359a49,
+ 0x296547,
+ 0x25f185,
+ 0x25be47,
+ 0x25dd86,
+ 0x363f05,
+ 0x36fe0b,
+ 0x2640c4,
+ 0x2692c5,
+ 0x269407,
+ 0x27b786,
+ 0x27bbc5,
+ 0x288487,
0x288d47,
- 0x28a9c6,
- 0x28d0cc,
- 0x201149,
- 0x42765547,
- 0x290305,
- 0x290306,
- 0x2906c8,
- 0x2b1f05,
- 0x2a4805,
- 0x2a4a48,
- 0x2a4c4a,
- 0x42a6a242,
- 0x42e0ff82,
- 0x382245,
- 0x29cdc3,
- 0x37a688,
- 0x21d083,
- 0x2a4ec4,
- 0x23de4b,
- 0x272408,
- 0x2d77c8,
- 0x433255c9,
- 0x2a8949,
- 0x2a9006,
- 0x2aa5c8,
- 0x2aa7c9,
- 0x2ab386,
- 0x2ab505,
- 0x383086,
- 0x2abc09,
- 0x2802c7,
- 0x243f06,
- 0x235c47,
- 0x3af647,
- 0x33b504,
- 0x43743909,
- 0x2c2288,
- 0x3565c8,
- 0x2368c7,
- 0x2bd906,
- 0x2fe209,
- 0x331f47,
- 0x2f1b0a,
- 0x376848,
- 0x3237c7,
- 0x326086,
- 0x33aa0a,
- 0x249fc8,
- 0x28ab05,
- 0x21bf85,
- 0x2bcb87,
- 0x2d26c9,
- 0x2d6e0b,
- 0x2dd8c8,
- 0x280949,
- 0x249b07,
- 0x3ad20c,
- 0x2b1acc,
- 0x2b1dca,
- 0x2b204c,
- 0x2bb4c8,
- 0x2bb6c8,
- 0x2bb8c4,
- 0x2bbc89,
- 0x2bbec9,
- 0x2bc10a,
- 0x2bc389,
- 0x2bc6c7,
- 0x20010c,
- 0x36ef86,
- 0x26de48,
- 0x220e06,
- 0x387346,
- 0x30fe47,
- 0x341d08,
- 0x25180b,
- 0x283287,
- 0x2aeb49,
- 0x2474c9,
- 0x255f87,
- 0x2d6204,
- 0x35efc7,
- 0x29f606,
- 0x219006,
- 0x38d985,
- 0x2ccd88,
- 0x20ef04,
- 0x20ef06,
- 0x26fa4b,
- 0x2a2389,
- 0x364086,
- 0x3a8409,
- 0x3926c6,
- 0x2fec08,
- 0x214803,
- 0x2083c5,
- 0x219149,
- 0x21fe05,
- 0x3a6084,
- 0x270fc6,
- 0x3a5a85,
- 0x2e6846,
- 0x2fbc07,
- 0x367186,
- 0x2952cb,
- 0x2b0647,
- 0x2d2586,
- 0x374346,
- 0x3a5346,
- 0x243849,
- 0x26238a,
- 0x2b6045,
- 0x21f68d,
- 0x2a4d46,
- 0x391246,
- 0x2e21c6,
- 0x210205,
- 0x2d3007,
- 0x2962c7,
- 0x23b68e,
- 0x211003,
- 0x2bd8c9,
- 0x318fc9,
- 0x20f647,
- 0x276b87,
- 0x299d85,
- 0x306f45,
- 0x43a7eacf,
- 0x2c4807,
- 0x2c49c8,
- 0x2c5a44,
- 0x2c5d06,
- 0x43e43b02,
- 0x2ca1c6,
- 0x2cc5c6,
- 0x251b4e,
- 0x2e7f4a,
- 0x21cd06,
- 0x33fcca,
- 0x3b4089,
- 0x316fc5,
- 0x393b48,
- 0x3ad0c6,
- 0x34ab88,
- 0x30f788,
- 0x25ab8b,
- 0x227a45,
- 0x366808,
- 0x208d0c,
- 0x281987,
- 0x248b06,
- 0x22f108,
- 0x201948,
- 0x44208382,
- 0x362b0b,
- 0x280bc9,
- 0x363e89,
- 0x209987,
- 0x30e688,
- 0x4460c648,
- 0x3a8c0b,
- 0x22b6c9,
- 0x20870d,
- 0x217e88,
- 0x22c288,
- 0x44a02282,
- 0x31d784,
- 0x44e23b42,
- 0x2ebc06,
- 0x452016c2,
- 0x3a180a,
- 0x201fc6,
- 0x225f08,
- 0x31ea08,
- 0x2b7546,
- 0x386986,
- 0x2e6606,
- 0x2a00c5,
- 0x23b184,
- 0x456feb84,
- 0x338986,
- 0x269047,
- 0x45a2ab47,
- 0x32be0b,
- 0x305c09,
- 0x23724a,
- 0x251404,
- 0x3193c8,
- 0x243ccd,
- 0x2e07c9,
- 0x2e0a08,
- 0x2e1149,
- 0x2e26c4,
- 0x200f04,
- 0x269885,
- 0x30b48b,
- 0x272386,
- 0x3387c5,
- 0x281c49,
- 0x227c48,
- 0x29ca84,
- 0x20f3c9,
- 0x2b0585,
- 0x2b7d08,
- 0x20b4c7,
- 0x323288,
- 0x27a506,
- 0x217287,
- 0x28eb89,
- 0x21c209,
- 0x2460c5,
- 0x231445,
- 0x45e25242,
- 0x39a144,
- 0x2fd585,
- 0x2a9746,
- 0x2f89c5,
- 0x268307,
- 0x243405,
- 0x243484,
- 0x348a46,
- 0x3902c7,
- 0x243b46,
- 0x325dc5,
- 0x31d488,
- 0x2281c5,
- 0x332607,
- 0x397409,
- 0x2a24ca,
- 0x22dac7,
- 0x22dacc,
- 0x2e3d46,
- 0x226349,
- 0x2ad585,
- 0x2c6e08,
- 0x211543,
- 0x211545,
- 0x2e9405,
- 0x256cc7,
- 0x46214f02,
- 0x236e47,
- 0x2d6786,
- 0x343846,
- 0x2e8cc6,
- 0x201886,
- 0x347e88,
- 0x3583c5,
- 0x2e35c7,
- 0x2e35cd,
- 0x202b43,
- 0x3a35c5,
- 0x3068c7,
- 0x3864c8,
- 0x386085,
- 0x366c88,
- 0x22a946,
- 0x31f507,
- 0x2bcf05,
- 0x227ac6,
- 0x3711c5,
- 0x2ba40a,
- 0x2eb1c6,
- 0x236487,
- 0x2c5bc5,
- 0x35a387,
- 0x35e244,
- 0x3a6006,
- 0x2f61c5,
- 0x28158b,
- 0x29f489,
- 0x37a20a,
- 0x246148,
- 0x2ff148,
- 0x300a4c,
- 0x3047c7,
- 0x32b388,
- 0x32edc8,
- 0x336085,
- 0x2bc94a,
- 0x35d109,
- 0x46601082,
- 0x205446,
- 0x214684,
- 0x3b1249,
- 0x2220c9,
- 0x24d307,
- 0x26c307,
- 0x358d09,
- 0x210408,
- 0x21040f,
- 0x3477c6,
- 0x20a0cb,
- 0x2e9b05,
- 0x2e9b07,
- 0x2e9f49,
- 0x20f346,
- 0x20f347,
- 0x3b3d85,
- 0x232784,
- 0x2633c6,
- 0x201284,
- 0x30ac07,
- 0x345e08,
- 0x46aee5c8,
- 0x2eebc5,
- 0x2eed07,
- 0x238289,
- 0x2740c4,
- 0x3a3888,
- 0x46f20b88,
- 0x2c4204,
- 0x2330c8,
- 0x31d904,
- 0x21f989,
- 0x2230c5,
- 0x47203e42,
- 0x347805,
- 0x220c85,
- 0x29fc88,
- 0x235347,
- 0x47600cc2,
- 0x2c81c5,
- 0x246b46,
- 0x256646,
- 0x39a108,
- 0x2ec008,
- 0x2f8986,
- 0x31b086,
- 0x22a489,
- 0x343786,
- 0x37870b,
- 0x30c145,
- 0x20d7c6,
- 0x390088,
- 0x252606,
- 0x28f506,
- 0x21c64a,
- 0x2ae4ca,
- 0x24ce85,
- 0x358487,
- 0x2d8e06,
- 0x47a03dc2,
- 0x306a07,
- 0x2c7a45,
- 0x25fa84,
- 0x25fa85,
- 0x251306,
- 0x270447,
- 0x2144c5,
- 0x222184,
- 0x2712c8,
- 0x28f5c5,
- 0x2cebc7,
- 0x39c105,
- 0x216805,
- 0x247b04,
- 0x28cbc9,
- 0x39f908,
- 0x2f5ec6,
- 0x36fcc6,
- 0x2c3f06,
- 0x47ef3648,
- 0x2f3847,
- 0x2f3fcd,
- 0x2f460c,
- 0x2f4c09,
- 0x2f4e49,
- 0x48351e02,
- 0x3a4803,
- 0x24cf03,
- 0x29f6c5,
- 0x38cbca,
- 0x31af46,
- 0x2f8e05,
- 0x2fc144,
- 0x2fc14b,
- 0x30d10c,
- 0x30d94c,
- 0x30dc55,
- 0x311acd,
- 0x313a0f,
- 0x313dd2,
- 0x31424f,
- 0x314612,
- 0x314a93,
- 0x314f4d,
- 0x31550d,
- 0x31588e,
- 0x315d4e,
- 0x31658c,
- 0x31694c,
- 0x316d8b,
- 0x31710e,
- 0x31a1d2,
- 0x31ad0c,
- 0x31b8d0,
- 0x327e52,
- 0x328dcc,
- 0x32948d,
- 0x3297cc,
- 0x32d8d1,
- 0x32e74d,
- 0x336b0d,
- 0x33710a,
- 0x33738c,
- 0x337c8c,
- 0x3384cc,
- 0x338d4c,
- 0x33c9d3,
- 0x33d050,
- 0x33d450,
- 0x33dccd,
- 0x33e2cc,
- 0x33efc9,
- 0x3402cd,
- 0x340613,
- 0x342e51,
- 0x343293,
- 0x343b4f,
- 0x343f0c,
- 0x34420f,
- 0x3445cd,
- 0x344bcf,
- 0x344f90,
- 0x345a0e,
- 0x34b48e,
- 0x34bbd0,
- 0x34c7cd,
- 0x34d14e,
- 0x34d4cc,
- 0x34e493,
- 0x34fc8e,
- 0x3503d0,
- 0x3507d1,
- 0x350c0f,
- 0x350fd3,
- 0x35198d,
- 0x351ccf,
- 0x35208e,
- 0x352990,
- 0x352d89,
- 0x3539d0,
- 0x35400f,
- 0x35468f,
- 0x354a52,
- 0x355ece,
- 0x35788d,
- 0x35998d,
- 0x359ccd,
- 0x35ac4d,
- 0x35af8d,
- 0x35b2d0,
- 0x35b6cb,
- 0x35c14c,
- 0x35c4cc,
- 0x35c7cc,
- 0x35cace,
- 0x372990,
- 0x3744d2,
- 0x37494b,
- 0x3750ce,
- 0x37544e,
- 0x375cce,
- 0x37728b,
- 0x48777856,
- 0x378ecd,
- 0x379354,
- 0x37a98d,
- 0x37c655,
- 0x37d78d,
- 0x37e10f,
- 0x37e94f,
- 0x38150f,
- 0x3818ce,
- 0x382b0d,
- 0x384151,
- 0x386b0c,
- 0x386e0c,
- 0x38710b,
- 0x387a0c,
- 0x387dcf,
- 0x388192,
- 0x388b4d,
- 0x389b0c,
+ 0x2d1784,
+ 0x28e04a,
+ 0x28e508,
+ 0x2c2149,
+ 0x3648c5,
+ 0x2951c6,
+ 0x226bca,
+ 0x387646,
+ 0x26f5c7,
+ 0x2c1e0d,
+ 0x2a1f09,
+ 0x3597c5,
+ 0x339dc7,
+ 0x368388,
+ 0x26a888,
+ 0x314d07,
+ 0x20b246,
+ 0x217807,
+ 0x221143,
+ 0x33c004,
+ 0x3607c5,
+ 0x38dcc7,
+ 0x391d09,
+ 0x22a8c8,
+ 0x33fac5,
+ 0x242844,
+ 0x2f5bc5,
+ 0x38174d,
+ 0x203742,
+ 0x386ac6,
+ 0x377a06,
+ 0x2c8bca,
+ 0x37e686,
+ 0x38b5c5,
+ 0x368fc5,
+ 0x368fc7,
+ 0x3a010c,
+ 0x279b0a,
+ 0x290586,
+ 0x225085,
+ 0x290706,
+ 0x290a47,
+ 0x292846,
+ 0x296d8c,
+ 0x296009,
+ 0x48e16087,
+ 0x299745,
+ 0x299746,
+ 0x299d08,
+ 0x236785,
+ 0x2a8b45,
+ 0x2a9548,
+ 0x2a974a,
+ 0x49258142,
+ 0x4960c2c2,
+ 0x2e8f85,
+ 0x28b9c3,
+ 0x22b108,
+ 0x241d03,
+ 0x2a99c4,
+ 0x2f350b,
+ 0x34ef48,
+ 0x305148,
+ 0x49b67ec9,
+ 0x2af389,
+ 0x2afac6,
+ 0x2b0a88,
+ 0x2b0c89,
+ 0x2b1786,
+ 0x2b1905,
+ 0x372a86,
+ 0x2b1e49,
+ 0x319d87,
+ 0x25c446,
+ 0x233147,
+ 0x20e947,
+ 0x362e04,
+ 0x49f453c9,
+ 0x2cd008,
+ 0x353408,
+ 0x383d07,
+ 0x2c8686,
+ 0x235389,
+ 0x210147,
+ 0x34970a,
+ 0x330d48,
+ 0x349407,
+ 0x3b1546,
+ 0x2e834a,
+ 0x2733c8,
+ 0x30de45,
+ 0x36dac5,
+ 0x2f9807,
+ 0x371d49,
+ 0x3097cb,
+ 0x31e0c8,
+ 0x32d389,
+ 0x253487,
+ 0x2bad4c,
+ 0x2bb74c,
+ 0x2bba4a,
+ 0x2bbccc,
+ 0x2c5c08,
+ 0x2c5e08,
+ 0x2c6004,
+ 0x2c63c9,
+ 0x2c6609,
+ 0x2c684a,
+ 0x2c6ac9,
+ 0x2c6e07,
+ 0x3a448c,
+ 0x24b946,
+ 0x35d588,
+ 0x387706,
+ 0x330c06,
+ 0x3596c7,
+ 0x238ec8,
+ 0x2618cb,
+ 0x303207,
+ 0x359c49,
+ 0x251489,
+ 0x25bbc7,
+ 0x2e1e04,
+ 0x3643c7,
+ 0x2e1246,
+ 0x214046,
+ 0x2eb045,
+ 0x2c7408,
+ 0x2976c4,
+ 0x2976c6,
+ 0x2799cb,
+ 0x212cc9,
+ 0x209e06,
+ 0x20c709,
+ 0x392486,
+ 0x3aae08,
+ 0x214183,
+ 0x2fb985,
+ 0x215a09,
+ 0x224085,
+ 0x2f9644,
+ 0x27acc6,
+ 0x2ed005,
+ 0x2f7346,
+ 0x309ec7,
+ 0x328dc6,
+ 0x3a174b,
+ 0x22c447,
+ 0x234886,
+ 0x3742c6,
+ 0x390446,
+ 0x291189,
+ 0x240aca,
+ 0x2b8ec5,
+ 0x21898d,
+ 0x2a9846,
+ 0x2babc6,
+ 0x2ded86,
+ 0x2f31c5,
+ 0x2e4d87,
+ 0x29fa87,
+ 0x22bd4e,
+ 0x20fbc3,
+ 0x2c8649,
+ 0x263709,
+ 0x32dd87,
+ 0x2804c7,
+ 0x2a2ec5,
+ 0x343f05,
+ 0x4a23734f,
+ 0x2d10c7,
+ 0x2d1288,
+ 0x2d25c4,
+ 0x2d2e86,
+ 0x4a64db02,
+ 0x2d7346,
+ 0x201686,
+ 0x2638ce,
+ 0x2ec54a,
+ 0x28b6c6,
+ 0x22d88a,
+ 0x209a09,
+ 0x323d05,
+ 0x393948,
+ 0x3aef46,
+ 0x359508,
+ 0x2392c8,
+ 0x34434b,
+ 0x233805,
+ 0x26ae88,
+ 0x2062cc,
+ 0x2bf807,
+ 0x252546,
+ 0x281fc8,
+ 0x2253c8,
+ 0x4aa09282,
+ 0x25604b,
+ 0x37b489,
+ 0x2cf2c9,
+ 0x2f02c7,
+ 0x3b3648,
+ 0x4ae289c8,
+ 0x20e64b,
+ 0x37dd09,
+ 0x33f58d,
+ 0x27d648,
+ 0x290188,
+ 0x4b201882,
+ 0x3b2f44,
+ 0x4b60dc42,
+ 0x2f9486,
+ 0x4ba038c2,
+ 0x2448ca,
+ 0x210546,
+ 0x22d208,
+ 0x289e88,
+ 0x2e4086,
+ 0x2eb5c6,
+ 0x2f7106,
+ 0x2f1b45,
+ 0x23c804,
+ 0x4be1de04,
+ 0x20ae86,
+ 0x29a787,
+ 0x4c2f7d07,
+ 0x2dc60b,
+ 0x32f089,
+ 0x227e0a,
+ 0x263144,
+ 0x369108,
+ 0x25c20d,
+ 0x2f1509,
+ 0x2f1748,
+ 0x2f2009,
+ 0x2f39c4,
+ 0x20ce44,
+ 0x283cc5,
+ 0x317b0b,
+ 0x34eec6,
+ 0x33c645,
+ 0x21fb89,
+ 0x233a08,
+ 0x263844,
+ 0x32db09,
+ 0x208f45,
+ 0x2c3788,
+ 0x238847,
+ 0x358c48,
+ 0x284e86,
+ 0x22b987,
+ 0x2984c9,
+ 0x311a89,
+ 0x372545,
+ 0x295645,
+ 0x4c626a82,
+ 0x306f44,
+ 0x30ce05,
+ 0x2c1846,
+ 0x327285,
+ 0x2b4707,
+ 0x20af85,
+ 0x27b7c4,
+ 0x3aca86,
+ 0x383487,
+ 0x232106,
+ 0x21e105,
+ 0x202608,
+ 0x233f85,
+ 0x205d07,
+ 0x20bc49,
+ 0x212e0a,
+ 0x2494c7,
+ 0x2494cc,
+ 0x24df46,
+ 0x2e9ac9,
+ 0x230505,
+ 0x2366c8,
+ 0x210c03,
+ 0x210c05,
+ 0x2f7b45,
+ 0x26e707,
+ 0x4ca27202,
+ 0x227a07,
+ 0x2e5206,
+ 0x345306,
+ 0x2e62c6,
+ 0x225306,
+ 0x2091c8,
+ 0x35b805,
+ 0x2e7b47,
+ 0x2e7b4d,
+ 0x21b083,
+ 0x21f305,
+ 0x21b087,
+ 0x26b308,
+ 0x21ac45,
+ 0x2281c8,
+ 0x2ab9c6,
+ 0x32b247,
+ 0x2c7bc5,
+ 0x233886,
+ 0x2cfac5,
+ 0x22dfca,
+ 0x2efec6,
+ 0x25dbc7,
+ 0x2bc605,
+ 0x2f44c7,
+ 0x2f8904,
+ 0x2f95c6,
+ 0x3624c5,
+ 0x32608b,
+ 0x2e10c9,
+ 0x23d74a,
+ 0x3725c8,
+ 0x3007c8,
+ 0x300f0c,
+ 0x306b47,
+ 0x308c48,
+ 0x30aa88,
+ 0x30dac5,
+ 0x338b4a,
+ 0x33aa09,
+ 0x4ce00202,
+ 0x200206,
+ 0x20d684,
+ 0x2ef889,
+ 0x275d49,
+ 0x27b1c7,
+ 0x2fa547,
+ 0x2b7c09,
+ 0x331308,
+ 0x33130f,
+ 0x2dfa86,
+ 0x2db10b,
+ 0x361545,
+ 0x361547,
+ 0x374c89,
+ 0x2171c6,
+ 0x32da87,
+ 0x2dde85,
+ 0x22f544,
+ 0x26e186,
+ 0x211984,
+ 0x2e6c47,
+ 0x34c5c8,
+ 0x4d2fb708,
+ 0x2fbe85,
+ 0x2fbfc7,
+ 0x245709,
+ 0x208444,
+ 0x208448,
+ 0x4d7190c8,
+ 0x23cdc4,
+ 0x230c88,
+ 0x3396c4,
+ 0x220389,
+ 0x333105,
+ 0x4da05bc2,
+ 0x2dfac5,
+ 0x2e6845,
+ 0x271b88,
+ 0x232847,
+ 0x4de03382,
+ 0x30cbc5,
+ 0x2d4e86,
+ 0x27a786,
+ 0x306f08,
+ 0x318308,
+ 0x327246,
+ 0x32e246,
+ 0x249009,
+ 0x345246,
+ 0x21708b,
+ 0x2a12c5,
+ 0x204686,
+ 0x382588,
+ 0x3152c6,
+ 0x298e46,
+ 0x21b94a,
+ 0x22f9ca,
+ 0x2e8245,
+ 0x35b8c7,
+ 0x2f0cc6,
+ 0x4e206602,
+ 0x21b1c7,
+ 0x2a9085,
+ 0x226b44,
+ 0x226b45,
+ 0x263046,
+ 0x27a447,
+ 0x20d405,
+ 0x22fb44,
+ 0x365008,
+ 0x298f05,
+ 0x33c8c7,
+ 0x39fa85,
+ 0x22df05,
+ 0x256b44,
+ 0x28fbc9,
+ 0x2ff988,
+ 0x2ecec6,
+ 0x2de9c6,
+ 0x2b9d46,
+ 0x4e700448,
+ 0x300647,
+ 0x3009cd,
+ 0x30120c,
+ 0x301809,
+ 0x301a49,
+ 0x4eb546c2,
+ 0x3a5503,
+ 0x20b303,
+ 0x2e1305,
+ 0x38ddca,
+ 0x327106,
+ 0x307905,
+ 0x30a084,
+ 0x30a08b,
+ 0x31bdcc,
+ 0x31c5cc,
+ 0x31c8d5,
+ 0x31d74d,
+ 0x31f44f,
+ 0x31f812,
+ 0x31fc8f,
+ 0x320052,
+ 0x3204d3,
+ 0x32098d,
+ 0x320f4d,
+ 0x3212ce,
+ 0x322a8e,
+ 0x3232cc,
+ 0x32368c,
+ 0x323acb,
+ 0x323e4e,
+ 0x324f92,
+ 0x326ecc,
+ 0x327610,
+ 0x3335d2,
+ 0x3347cc,
+ 0x334e8d,
+ 0x3351cc,
+ 0x337611,
+ 0x3384cd,
+ 0x33ac4d,
+ 0x33b24a,
+ 0x33b4cc,
+ 0x33bdcc,
+ 0x33c34c,
+ 0x33cbcc,
+ 0x33fc53,
+ 0x340450,
+ 0x340850,
+ 0x340e4d,
+ 0x34144c,
+ 0x342209,
+ 0x342f0d,
+ 0x343253,
+ 0x344911,
+ 0x344d53,
+ 0x34560f,
+ 0x3459cc,
+ 0x345ccf,
+ 0x34608d,
+ 0x34668f,
+ 0x346a50,
+ 0x3474ce,
+ 0x34ac8e,
+ 0x34b590,
+ 0x34ca8d,
+ 0x34d40e,
+ 0x34d78c,
+ 0x34e753,
+ 0x351e0e,
+ 0x352390,
+ 0x352791,
+ 0x352bcf,
+ 0x352f93,
+ 0x35424d,
+ 0x35458f,
+ 0x35494e,
+ 0x354fd0,
+ 0x3553c9,
+ 0x356390,
+ 0x356acf,
+ 0x35714f,
+ 0x357512,
+ 0x359e8e,
+ 0x35a74d,
+ 0x35cc4d,
+ 0x35cf8d,
+ 0x35f68d,
+ 0x35f9cd,
+ 0x35fd10,
+ 0x36010b,
+ 0x36058c,
+ 0x36090c,
+ 0x360c0c,
+ 0x360f0e,
+ 0x372c10,
+ 0x374452,
+ 0x3748cb,
+ 0x374ece,
+ 0x37524e,
+ 0x375ace,
+ 0x37604b,
+ 0x4ef76396,
+ 0x37724d,
+ 0x378354,
+ 0x378e0d,
+ 0x37ae55,
+ 0x37c04d,
+ 0x37c9cf,
+ 0x37d20f,
+ 0x38028f,
+ 0x38064e,
+ 0x380acd,
+ 0x382f11,
+ 0x385ecc,
+ 0x3861cc,
+ 0x3864cb,
+ 0x386c4c,
+ 0x38824f,
+ 0x388612,
+ 0x388fcd,
0x389f8c,
- 0x38a28d,
- 0x38a5cf,
- 0x38a98e,
- 0x38c88c,
- 0x38ce4d,
- 0x38d18b,
- 0x38e9cc,
- 0x38ef4d,
- 0x38f28e,
- 0x38f709,
- 0x3909d3,
- 0x3913cd,
- 0x39170d,
- 0x391d0c,
- 0x39218e,
- 0x392b0f,
- 0x392ecc,
- 0x3931cd,
- 0x39350f,
- 0x3938cc,
- 0x393fcc,
- 0x39444c,
- 0x39474c,
- 0x394e0d,
- 0x395152,
- 0x3957cc,
- 0x395acc,
- 0x395dd1,
- 0x39620f,
- 0x3965cf,
- 0x396993,
- 0x39764e,
- 0x397bcf,
- 0x397f8c,
- 0x48b982ce,
- 0x39864f,
- 0x398a16,
- 0x399c12,
- 0x39b88c,
- 0x39c24f,
- 0x39c8cd,
- 0x39cc0f,
- 0x39cfcc,
- 0x39d2cd,
- 0x39d60d,
- 0x39f4ce,
- 0x3a058c,
- 0x3a088c,
- 0x3a0b90,
- 0x3a3a91,
- 0x3a3ecb,
- 0x3a440c,
- 0x3a470e,
+ 0x38a40c,
+ 0x38a70d,
+ 0x38aa4f,
+ 0x38ae0e,
+ 0x38da8c,
+ 0x38e04d,
+ 0x38e38b,
+ 0x38ee8c,
+ 0x38f40d,
+ 0x38f74e,
+ 0x38fac9,
+ 0x390c53,
+ 0x39118d,
+ 0x3914cd,
+ 0x391acc,
+ 0x391f4e,
+ 0x39290f,
+ 0x392ccc,
+ 0x392fcd,
+ 0x39330f,
+ 0x3936cc,
+ 0x3943cc,
+ 0x39484c,
+ 0x394b4c,
+ 0x39520d,
+ 0x395552,
+ 0x396c0c,
+ 0x396f0c,
+ 0x397211,
+ 0x39764f,
+ 0x397a0f,
+ 0x397dd3,
+ 0x398a8e,
+ 0x398e0f,
+ 0x3991cc,
+ 0x4f39950e,
+ 0x39988f,
+ 0x399c56,
+ 0x39b312,
+ 0x39d64c,
+ 0x39e14f,
+ 0x39e7cd,
+ 0x39eb0f,
+ 0x39eecc,
+ 0x39f1cd,
+ 0x39f50d,
+ 0x3a0c4e,
+ 0x3a2b8c,
+ 0x3a2e8c,
+ 0x3a3190,
+ 0x3a4991,
+ 0x3a4dcb,
+ 0x3a510c,
+ 0x3a540e,
0x3a7051,
0x3a748e,
0x3a780d,
- 0x3ace8b,
- 0x3adbcf,
- 0x3aee94,
- 0x21c2c2,
- 0x21c2c2,
- 0x205903,
- 0x21c2c2,
- 0x205903,
- 0x21c2c2,
- 0x205e02,
- 0x3830c5,
+ 0x3aed0b,
+ 0x3afdcf,
+ 0x3b09d4,
+ 0x2630c2,
+ 0x2630c2,
+ 0x202583,
+ 0x2630c2,
+ 0x202583,
+ 0x2630c2,
+ 0x20ae82,
+ 0x372ac5,
0x3a6d4c,
- 0x21c2c2,
- 0x21c2c2,
- 0x205e02,
- 0x21c2c2,
- 0x290d45,
- 0x2a24c5,
- 0x21c2c2,
- 0x21c2c2,
- 0x211d42,
- 0x290d45,
- 0x312d49,
- 0x342b4c,
- 0x21c2c2,
- 0x21c2c2,
- 0x21c2c2,
- 0x21c2c2,
- 0x3830c5,
- 0x21c2c2,
- 0x21c2c2,
- 0x21c2c2,
- 0x21c2c2,
- 0x211d42,
- 0x312d49,
- 0x21c2c2,
- 0x21c2c2,
- 0x21c2c2,
- 0x2a24c5,
- 0x21c2c2,
- 0x2a24c5,
- 0x342b4c,
+ 0x2630c2,
+ 0x2630c2,
+ 0x20ae82,
+ 0x2630c2,
+ 0x29a385,
+ 0x212e05,
+ 0x2630c2,
+ 0x2630c2,
+ 0x211cc2,
+ 0x29a385,
+ 0x31e789,
+ 0x34460c,
+ 0x2630c2,
+ 0x2630c2,
+ 0x2630c2,
+ 0x2630c2,
+ 0x372ac5,
+ 0x2630c2,
+ 0x2630c2,
+ 0x2630c2,
+ 0x2630c2,
+ 0x211cc2,
+ 0x31e789,
+ 0x2630c2,
+ 0x2630c2,
+ 0x2630c2,
+ 0x212e05,
+ 0x2630c2,
+ 0x212e05,
+ 0x34460c,
0x3a6d4c,
- 0x323ac3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x238483,
- 0x2264c3,
- 0x141388,
- 0x4db44,
- 0xed208,
- 0x200882,
- 0x49a16582,
- 0x240003,
- 0x22b944,
- 0x208f43,
- 0x21eb04,
- 0x231ac6,
- 0x31d243,
- 0x34aa44,
- 0x26cc05,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x24690a,
- 0x3a5946,
- 0x3757cc,
- 0x880c8,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x2348c3,
- 0x2cc5c6,
- 0x238483,
- 0x2264c3,
- 0x21bd03,
- 0xd42,
- 0xdb7c7,
- 0xca908,
- 0xfd8e,
- 0x85792,
- 0x2ecb,
- 0x4a71f345,
- 0x4ab76d0c,
- 0x131007,
- 0x16e747,
- 0x119b8a,
- 0x3c550,
- 0x2988,
- 0x16e847,
- 0xae14b,
- 0x112089,
- 0x173507,
- 0x10ec87,
- 0x77847,
- 0x169c6,
- 0x132d48,
- 0x4b01e1c6,
- 0xa910d,
- 0x119550,
- 0x4b400d82,
- 0x131948,
- 0x680c7,
- 0x84109,
- 0x53e06,
- 0x908c8,
- 0x5e82,
- 0x9c34a,
- 0x8e507,
- 0xeaec7,
- 0xa5449,
- 0xa7188,
- 0x157f45,
- 0xe168e,
- 0xe9ce,
- 0x14c4f,
- 0x15309,
- 0x33c49,
- 0x6528b,
- 0x7cdcf,
- 0x8cdcc,
- 0xdcbcb,
- 0xd99c8,
- 0x12bd07,
- 0xede48,
- 0x11e50b,
- 0x13e94c,
- 0x14624c,
- 0x14f98c,
- 0x1524cd,
- 0x2b848,
- 0x30cc2,
- 0x1afb89,
- 0x14c24b,
- 0xbdb06,
- 0xce6c5,
- 0xd2d10,
- 0x1229c6,
- 0x51f05,
- 0xd6908,
- 0xdc047,
- 0xdc307,
- 0x163287,
- 0xeba4a,
- 0xca78a,
- 0x161186,
- 0x8db8d,
- 0x180248,
- 0x45e88,
- 0x47a49,
- 0xeb58c,
- 0x1526cb,
- 0x171ac4,
- 0xf3109,
- 0x44bc6,
- 0x6202,
- 0x155646,
- 0xfefc7,
- 0x6c2,
- 0xc0e85,
- 0x481,
- 0x3b583,
- 0x4af9eb86,
- 0x90c43,
- 0x1f82,
- 0x3a4c4,
+ 0x368883,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204ac3,
+ 0x200383,
+ 0x1f08,
+ 0x15444,
+ 0xc1348,
+ 0x204cc2,
+ 0x5020d1c2,
+ 0x243403,
+ 0x24c944,
+ 0x202743,
+ 0x38e8c4,
+ 0x22e886,
+ 0x213843,
+ 0x31aa84,
+ 0x288845,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x25084a,
+ 0x241f46,
+ 0x3755cc,
+ 0x15f048,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x22d603,
+ 0x201686,
+ 0x204ac3,
+ 0x200383,
+ 0x21aa03,
+ 0xaa288,
+ 0x3942,
+ 0x513856c5,
+ 0x2ac47,
+ 0xd7a88,
+ 0xc0ce,
+ 0x8c792,
+ 0x16780b,
+ 0x516db445,
+ 0x51adb44c,
+ 0xf207,
+ 0x13ecc7,
+ 0x1698ca,
+ 0x3efd0,
+ 0x1acd05,
+ 0x16e1cb,
+ 0x1672c8,
+ 0x13edc7,
+ 0x2f64b,
+ 0x11dd09,
+ 0x150f47,
+ 0x1b3c47,
+ 0x81187,
+ 0x20586,
+ 0x94b88,
+ 0x52028b86,
+ 0xafbcd,
+ 0x169290,
+ 0x52401742,
+ 0xfb48,
+ 0x71f47,
+ 0x7f149,
+ 0x59b46,
+ 0x99f08,
+ 0x74842,
+ 0xa4f4a,
+ 0x2d587,
+ 0x3b9c7,
+ 0xaa689,
+ 0xad708,
+ 0x15ae05,
+ 0x194e8e,
+ 0x14d4e,
+ 0x26f4f,
+ 0x2ccc9,
+ 0x4c809,
+ 0x77e8b,
+ 0x878cf,
+ 0x8fdcc,
+ 0xadd8b,
+ 0xc4d08,
+ 0xdc507,
+ 0x162908,
+ 0xfe04b,
+ 0x12a54c,
+ 0x141acc,
+ 0x147f4c,
+ 0x14b0cd,
+ 0x17de88,
+ 0x42602,
+ 0x104389,
+ 0x18528b,
+ 0xc8886,
+ 0x116f8b,
+ 0xdd5ca,
+ 0xde185,
+ 0xe4a90,
+ 0x1294c6,
+ 0x63c85,
+ 0xe6448,
+ 0xee547,
+ 0xee807,
+ 0x5e987,
+ 0xf92ca,
+ 0xd790a,
+ 0x177ac6,
+ 0x97ccd,
+ 0x1ae208,
+ 0x56608,
+ 0x56a89,
+ 0xb9905,
+ 0x19de4c,
+ 0x14b2cb,
+ 0x171c84,
+ 0xff749,
+ 0x8146,
+ 0x16c2,
+ 0x125886,
+ 0x10d947,
+ 0x6c82,
+ 0xcb605,
+ 0x29b04,
+ 0x701,
+ 0x2bc43,
+ 0x51fadbc6,
+ 0x9a283,
+ 0x8a42,
+ 0x2d584,
+ 0x1442,
+ 0x4ae04,
+ 0x1342,
+ 0x2f82,
+ 0x3682,
+ 0x1124c2,
+ 0xe542,
+ 0xdb442,
+ 0x2ac2,
+ 0x1c402,
+ 0x26982,
+ 0x4d02,
+ 0x3b02,
+ 0x34682,
+ 0x31b83,
+ 0x7d02,
+ 0x1c2,
+ 0x41c2,
+ 0xda42,
+ 0x642,
+ 0xdc2,
+ 0x18d82,
+ 0x1a02,
+ 0x2282,
+ 0x1d42,
+ 0x4303,
+ 0xb02,
+ 0x2f02,
+ 0xb5e02,
+ 0x1b02,
+ 0x5d82,
+ 0x32c2,
+ 0x73c2,
+ 0x17c2,
+ 0x1f02,
+ 0x173102,
+ 0x73fc2,
+ 0x5e402,
+ 0x4ac3,
+ 0x2c2,
+ 0x9282,
0x1002,
- 0x24104,
- 0x9c2,
- 0x1182,
- 0x3182,
- 0x4f882,
- 0x2ec2,
- 0x104e82,
- 0x8c2,
- 0x1dec2,
- 0x37e42,
+ 0x14602,
+ 0x1724c5,
+ 0x6ec2,
+ 0x1202,
+ 0x41703,
0x682,
- 0xf82,
- 0xb1d82,
- 0x343c3,
- 0x8042,
- 0x202,
- 0x6ac2,
- 0x21842,
- 0xb2c2,
- 0x32a02,
- 0xf1c2,
- 0x42,
- 0x5602,
- 0xa82,
- 0x2243,
- 0x74c2,
- 0x1982,
- 0xb09c2,
- 0x9682,
- 0xb402,
- 0x61c2,
- 0xa242,
- 0x9a1c2,
- 0x6742,
- 0x172e82,
- 0xe02,
- 0x9f82,
- 0x38483,
- 0x1dc2,
- 0x8382,
- 0x25c2,
- 0x2182,
- 0x46045,
- 0x6a42,
- 0x41542,
- 0x3e503,
- 0x4b42,
- 0x7982,
- 0x1402,
- 0x15c2,
- 0x1882,
- 0xcc2,
- 0x3282,
- 0x6202,
- 0x6b247,
- 0x212d03,
- 0x200882,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x201d83,
- 0x2348c3,
- 0x238483,
- 0x2025c3,
- 0x2264c3,
- 0x290c83,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x211003,
- 0x238483,
- 0x2025c3,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
+ 0xd42,
+ 0x1702,
+ 0xe5c2,
+ 0x1ac2,
+ 0x3382,
+ 0x6902,
+ 0x16c2,
+ 0x73c07,
+ 0x213dc3,
+ 0x204cc2,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x201d43,
+ 0x22d603,
+ 0x204ac3,
+ 0x20abc3,
+ 0x200383,
+ 0x29a2c3,
+ 0x1a5c3,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x20abc3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
0x200041,
- 0x211003,
- 0x238483,
- 0x201f43,
- 0x2264c3,
- 0x323ac3,
- 0x22d183,
- 0x2343c3,
- 0x25f643,
- 0x211cc3,
- 0x3112c3,
- 0x27cc03,
- 0x201f83,
- 0x25a603,
- 0x21eb03,
- 0x201604,
- 0x238483,
- 0x2264c3,
- 0x223ec3,
- 0x305fc4,
- 0x21e143,
- 0x4803,
- 0x203e03,
- 0x2a0cc8,
- 0x332a44,
- 0x317f8a,
- 0x330786,
- 0xda404,
- 0x3a2e47,
- 0x22138a,
- 0x347689,
- 0x3b3507,
- 0x20054a,
- 0x323ac3,
- 0x3822cb,
- 0x368b49,
- 0x2c4005,
- 0x2ca007,
- 0x16582,
- 0x22d183,
- 0x326647,
- 0x22a1c5,
- 0x2d60c9,
- 0x2343c3,
- 0x227846,
- 0x2ba0c3,
- 0x9f543,
- 0xfaa86,
- 0x4f4c6,
- 0x11d1c7,
- 0x3a8786,
- 0x213e45,
- 0x20c507,
- 0x338b87,
- 0x4d61eb03,
- 0x329007,
- 0x35eec3,
- 0x38e705,
- 0x201604,
- 0x221c08,
- 0x2af6cc,
- 0x2ad6c5,
- 0x363c06,
- 0x326507,
- 0x224b47,
- 0x205087,
- 0x206e48,
- 0x2597cf,
- 0x280b05,
- 0x240107,
- 0x27e347,
- 0x2a500a,
- 0x2ee209,
- 0x2d7185,
- 0x2d830a,
- 0xdea46,
- 0x2ba145,
- 0x374b84,
- 0x2b7486,
- 0x2fe5c7,
- 0x230bc7,
- 0x2a0a08,
- 0x214805,
- 0x22a0c6,
- 0x3a8245,
- 0x37a445,
- 0x21fd44,
- 0x31e907,
- 0x347cca,
- 0x365a48,
- 0x2edb86,
- 0x348c3,
- 0x2cf145,
- 0x238d06,
- 0x200346,
- 0x251e06,
- 0x211003,
- 0x388dc7,
- 0x27e2c5,
- 0x238483,
- 0x3b378d,
- 0x2025c3,
- 0x2a0b08,
- 0x3aac44,
- 0x205fc5,
- 0x2a4f06,
- 0x236b06,
- 0x20d6c7,
- 0x355747,
- 0x2641c5,
- 0x2264c3,
- 0x322c07,
- 0x33b009,
- 0x258f49,
- 0x2434ca,
- 0x242a42,
- 0x38e6c4,
- 0x2d7ac4,
- 0x210d87,
- 0x236d08,
- 0x2dce89,
- 0x3a3489,
- 0x2df807,
- 0x334206,
- 0xe1406,
- 0x2e26c4,
- 0x2e2cca,
- 0x2e5c88,
- 0x2e64c9,
- 0x2b6306,
- 0x3003c5,
- 0x365908,
- 0x2bf10a,
- 0x25b743,
- 0x306146,
- 0x2df907,
- 0x207c85,
- 0x3aab05,
- 0x242083,
- 0x252dc4,
- 0x21bf45,
- 0x27e747,
- 0x39fa45,
- 0x2f3bc6,
- 0xfa705,
- 0x212a43,
- 0x21cdc9,
- 0x238dcc,
- 0x2ab90c,
- 0x2c65c8,
- 0x28f8c7,
- 0x2ef748,
- 0x2efa8a,
- 0x2f0a4b,
- 0x368c88,
- 0x363d08,
- 0x36ee86,
- 0x341985,
- 0x36498a,
- 0x21ebc5,
- 0x203e42,
- 0x2bcdc7,
- 0x26a8c6,
- 0x353505,
- 0x2f1949,
- 0x38dec5,
- 0x376785,
- 0x38e2c9,
- 0x238b86,
- 0x261b88,
- 0x2d1343,
- 0x3a88c6,
- 0x270f06,
- 0x2fdcc5,
- 0x2fdcc9,
- 0x2dd5c9,
- 0x242d87,
- 0xfdb44,
- 0x2fdb47,
- 0x3a3389,
- 0x221585,
- 0x16f208,
- 0x355545,
- 0x355245,
- 0x399309,
- 0x201482,
- 0x21df44,
- 0x202e82,
- 0x2074c2,
- 0x293c45,
- 0x2da188,
- 0x374e45,
- 0x2bc883,
- 0x2bc885,
- 0x2ca3c3,
- 0x2111c2,
- 0x264a04,
- 0x233503,
- 0x207a82,
- 0x358704,
- 0x2d8003,
- 0x2014c2,
- 0x293cc3,
- 0x2898c4,
- 0x2d7703,
- 0x23a804,
- 0x201bc2,
- 0x21bc03,
- 0x219283,
- 0x208d82,
- 0x35b202,
- 0x2dd409,
- 0x2011c2,
- 0x286304,
- 0x200dc2,
- 0x365784,
- 0x3341c4,
- 0x3a1cc4,
- 0x206202,
- 0x23e802,
- 0x20dc03,
- 0x2f0083,
- 0x23f704,
- 0x27e8c4,
- 0x2d13c4,
- 0x2dd7c4,
- 0x2fd083,
- 0x3491c3,
- 0x2de9c4,
- 0x2fee04,
- 0x2ff346,
- 0x260dc2,
- 0x216582,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x200882,
- 0x323ac3,
- 0x22d183,
- 0x2343c3,
- 0x205403,
- 0x21eb03,
- 0x201604,
- 0x2dd6c4,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x21bd03,
- 0x2e3444,
- 0x29e943,
- 0x2b3783,
- 0x3436c4,
- 0x355346,
- 0x20ca03,
- 0x16e747,
- 0x219b83,
- 0x208143,
- 0x2b1a03,
- 0x206003,
- 0x2348c3,
- 0x376f85,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x2db443,
- 0x230743,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x202243,
- 0x238483,
- 0x234fc4,
- 0x2264c3,
- 0x29b704,
- 0x2b7285,
- 0x16e747,
- 0x216582,
- 0x201a42,
- 0x201f82,
- 0x205902,
- 0x201502,
- 0x22d183,
- 0x2374c4,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x217643,
- 0x224104,
- 0x880c8,
- 0x22d183,
- 0x2025c3,
- 0x245dc4,
- 0x880c8,
- 0x22d183,
- 0x247344,
- 0x201604,
- 0x2025c3,
- 0x202282,
- 0x2264c3,
- 0x215cc3,
- 0x52dc4,
- 0x2e9cc5,
- 0x203e42,
- 0x2fef43,
- 0x200882,
- 0x880c8,
- 0x216582,
- 0x2343c3,
- 0x21eb03,
- 0x200a82,
- 0x2264c3,
- 0x200882,
- 0x200707,
- 0x254705,
- 0x29f844,
- 0x385f86,
- 0x366a4b,
- 0x263a49,
- 0x363b46,
- 0x340a89,
- 0x2b2c88,
- 0x207103,
- 0x880c8,
- 0x22a807,
- 0x364288,
- 0x24f843,
- 0x21d184,
- 0x2226cb,
- 0x259145,
- 0x24b188,
- 0x2f2ec9,
- 0x25a203,
- 0x22d183,
- 0x205348,
- 0x2ee787,
- 0x24fe46,
- 0x2343c3,
- 0x24f947,
- 0x21eb03,
- 0x339b06,
- 0x202243,
- 0x22f9c7,
- 0x33a6c7,
- 0x390e87,
- 0x31e885,
- 0x209403,
- 0x205dcb,
- 0x36b4c8,
- 0x227548,
- 0x33b1c6,
- 0x367989,
- 0x335b07,
- 0x2f9145,
- 0x339444,
- 0x3478c8,
- 0x23d54a,
- 0x23d789,
- 0x346f03,
- 0x2696c5,
- 0x21bb83,
- 0x3ad706,
- 0x387704,
- 0x2fdec8,
- 0x38748b,
- 0x346dc5,
- 0x2b7006,
- 0x2b8e85,
- 0x2b9608,
- 0x2ba287,
- 0x206cc7,
- 0x317b87,
- 0x294544,
- 0x30a5c7,
- 0x294546,
- 0x211003,
- 0x2c2088,
- 0x268383,
- 0x2cab08,
- 0x2d3f45,
- 0x3251c8,
- 0x2345c7,
- 0x238483,
- 0x2447c3,
- 0x287dc4,
- 0x323647,
- 0x208fc3,
- 0x33a78b,
- 0x205003,
- 0x268344,
- 0x2e9d48,
- 0x2264c3,
- 0x2f3d45,
- 0x311145,
- 0x3250c6,
- 0x2117c5,
- 0x2d4304,
- 0x202002,
- 0x2e69c3,
- 0x374c0a,
- 0x3a1583,
- 0x306709,
- 0x30a2c6,
- 0x204e48,
- 0x289406,
- 0x214347,
- 0x2db948,
- 0x39a588,
- 0x2ebd43,
- 0x293d03,
- 0x272c09,
- 0x2f4c83,
- 0x2d8d06,
- 0x254386,
- 0x39f7c6,
- 0x3a1e09,
- 0x2fd784,
- 0x20e3c3,
- 0x2d6d05,
- 0x349589,
- 0x206dc3,
- 0x35a244,
- 0x2f2ac4,
- 0x36fc84,
- 0x35f906,
- 0x3b4303,
- 0x3b4308,
- 0x256a08,
- 0x39db86,
- 0x2f8f4b,
- 0x2f9288,
- 0x2f948b,
- 0x2fb949,
- 0x2fa987,
- 0x2fbdc8,
- 0x2fc983,
- 0x22ad86,
- 0x3a9247,
- 0x295245,
- 0x34b789,
- 0x33530d,
- 0x204c91,
- 0x22eb85,
- 0x200882,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x22d684,
- 0x21eb03,
- 0x202243,
- 0x211003,
- 0x238483,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x2348c3,
- 0x238483,
- 0x2264c3,
- 0x265903,
- 0x217643,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x2348c3,
- 0x238483,
- 0x2264c3,
- 0x221e42,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x2104c3,
+ 0x200383,
+ 0x368883,
+ 0x2d0783,
+ 0x231b83,
+ 0x20fb43,
+ 0x2135c3,
+ 0x2300c3,
+ 0x287703,
+ 0x210503,
+ 0x234743,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204ac3,
+ 0x200383,
+ 0x24abc3,
+ 0x200604,
+ 0x250c83,
+ 0x5283,
+ 0x3abd03,
+ 0x329b88,
+ 0x2e8384,
+ 0x2c264a,
+ 0x224906,
+ 0x10f9c4,
+ 0x38c2c7,
+ 0x21eeca,
+ 0x2df949,
+ 0x3a3b07,
+ 0x3a7dca,
+ 0x368883,
+ 0x2e900b,
+ 0x303349,
+ 0x2b9e45,
+ 0x2d7187,
+ 0xd1c2,
+ 0x2d0783,
+ 0x204d07,
+ 0x248d45,
+ 0x2e1cc9,
+ 0x231b83,
+ 0x233606,
+ 0x2c56c3,
+ 0xe1183,
+ 0x109686,
+ 0x60546,
+ 0x137c7,
+ 0x217546,
+ 0x222645,
+ 0x2cf187,
+ 0x2da587,
+ 0x54b32ec3,
+ 0x334a07,
+ 0x3642c3,
+ 0x3a2385,
+ 0x2964c4,
+ 0x32e3c8,
+ 0x2751cc,
+ 0x3a5745,
+ 0x2a2086,
+ 0x204bc7,
+ 0x37ef47,
+ 0x25b8c7,
+ 0x31f248,
+ 0x307ecf,
+ 0x2dfb85,
+ 0x243507,
+ 0x2394c7,
+ 0x2a9b0a,
+ 0x2d7e49,
+ 0x30bc85,
+ 0x32194a,
+ 0x1b06,
+ 0x2c5745,
+ 0x376284,
+ 0x289dc6,
+ 0x2f8cc7,
+ 0x242507,
+ 0x38cbc8,
+ 0x214185,
+ 0x248c46,
+ 0x20c545,
+ 0x387845,
+ 0x212c04,
+ 0x2e3f87,
+ 0x20900a,
+ 0x234d48,
+ 0x356946,
+ 0x2d603,
+ 0x2e0405,
+ 0x26c686,
+ 0x3a46c6,
+ 0x263b86,
+ 0x20fbc3,
+ 0x389247,
+ 0x239445,
+ 0x204ac3,
+ 0x2dd88d,
+ 0x20abc3,
+ 0x38ccc8,
+ 0x39a5c4,
+ 0x27ba85,
+ 0x2a9a06,
+ 0x2362c6,
+ 0x204587,
+ 0x2ae707,
+ 0x270b05,
+ 0x200383,
+ 0x27f2c7,
+ 0x329709,
+ 0x22b689,
+ 0x2f590a,
+ 0x24cd82,
+ 0x3a2344,
+ 0x2e76c4,
+ 0x261787,
+ 0x2278c8,
+ 0x2ef309,
+ 0x21f1c9,
+ 0x2f0487,
+ 0x303806,
+ 0xf22c6,
+ 0x2f39c4,
+ 0x2f3fca,
+ 0x2f6a08,
+ 0x2f6fc9,
+ 0x2bfe86,
+ 0x2b6ec5,
+ 0x234c08,
+ 0x2c9c4a,
+ 0x22c6c3,
+ 0x200786,
+ 0x2f0587,
+ 0x217f85,
+ 0x39a485,
+ 0x2717c3,
+ 0x258a04,
+ 0x36da85,
+ 0x288e47,
+ 0x2ffac5,
+ 0x2ed686,
+ 0xfff05,
+ 0x264a03,
+ 0x28b789,
+ 0x27b84c,
+ 0x2a7e0c,
+ 0x2d3bc8,
+ 0x3ade87,
+ 0x2fc8c8,
+ 0x2fcc0a,
+ 0x2fd84b,
+ 0x303488,
+ 0x33f408,
+ 0x2363c6,
+ 0x262685,
+ 0x200f4a,
+ 0x219545,
+ 0x205bc2,
+ 0x2c7a87,
+ 0x2a32c6,
+ 0x355ec5,
+ 0x38e989,
+ 0x26b785,
+ 0x285ec5,
+ 0x3a1f49,
+ 0x257cc6,
+ 0x3b1088,
+ 0x23e0c3,
+ 0x3b3306,
+ 0x27ac06,
+ 0x30ba85,
+ 0x30ba89,
+ 0x2bc289,
+ 0x24d0c7,
+ 0x10b904,
+ 0x30b907,
+ 0x21f0c9,
+ 0x23c905,
+ 0x4bbc8,
+ 0x3b3205,
+ 0x339505,
+ 0x376c89,
+ 0x205ac2,
+ 0x2e95c4,
+ 0x20d782,
+ 0x200b02,
+ 0x2ce985,
+ 0x30f748,
+ 0x2b9845,
+ 0x2c6fc3,
+ 0x2c6fc5,
+ 0x2d7543,
+ 0x210882,
+ 0x2e30c4,
+ 0x351903,
+ 0x204c82,
+ 0x35bb44,
+ 0x2e85c3,
+ 0x200e82,
+ 0x25e903,
+ 0x291704,
+ 0x2e7083,
+ 0x246f04,
+ 0x202602,
+ 0x21a903,
+ 0x215b43,
+ 0x206342,
+ 0x33c282,
+ 0x2bc0c9,
+ 0x202d82,
+ 0x28d304,
+ 0x201782,
+ 0x234a84,
+ 0x3037c4,
+ 0x2bcc44,
+ 0x2016c2,
+ 0x241a02,
+ 0x220883,
+ 0x225f83,
+ 0x387944,
+ 0x269e44,
+ 0x2bc484,
+ 0x2ce884,
+ 0x30b143,
+ 0x34f743,
+ 0x201a84,
+ 0x30d784,
+ 0x30e786,
+ 0x2e7782,
+ 0x20d1c2,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x204cc2,
+ 0x368883,
+ 0x2d0783,
+ 0x231b83,
+ 0x2001c3,
+ 0x332ec3,
+ 0x2964c4,
+ 0x2bc384,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x21aa03,
+ 0x2f4684,
+ 0x32f983,
+ 0x2bf3c3,
+ 0x345184,
+ 0x3b3006,
+ 0x211503,
+ 0x13ecc7,
+ 0x234fc3,
+ 0x23a943,
+ 0x2b6703,
+ 0x265383,
+ 0x22d603,
+ 0x2db6c5,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2ed143,
+ 0x2ab343,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204303,
+ 0x204ac3,
+ 0x23ee04,
+ 0x200383,
+ 0x26a104,
+ 0x2c2d45,
+ 0x13ecc7,
+ 0x20d1c2,
+ 0x2000c2,
+ 0x208a42,
+ 0x202082,
+ 0x200382,
+ 0x2d0783,
+ 0x23a184,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x213e83,
+ 0x24ae04,
+ 0x15f048,
+ 0x2d0783,
+ 0x20abc3,
+ 0x1a5c3,
+ 0x24fe44,
+ 0x15f048,
+ 0x2d0783,
+ 0x251304,
+ 0x2964c4,
+ 0x20abc3,
+ 0x201882,
+ 0x200383,
+ 0x2202c3,
+ 0x58a04,
+ 0x370145,
+ 0x205bc2,
+ 0x30d8c3,
+ 0x204cc2,
+ 0x15f048,
+ 0x20d1c2,
+ 0x231b83,
+ 0x332ec3,
+ 0x201d42,
+ 0x200383,
+ 0x204cc2,
+ 0x15f048,
+ 0x231b83,
+ 0x332ec3,
+ 0x204303,
+ 0x20fbc3,
+ 0x30b544,
+ 0x204cc2,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x2da904,
+ 0x332ec3,
+ 0x204303,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x22d603,
+ 0x204ac3,
+ 0x200383,
+ 0x26a103,
+ 0x213e83,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x1a5c3,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x22d603,
+ 0x204ac3,
+ 0x200383,
+ 0x217082,
0x200141,
- 0x200882,
+ 0x204cc2,
0x200001,
- 0x313b02,
- 0x880c8,
- 0x220045,
- 0x200481,
- 0x2d183,
- 0x200741,
- 0x200081,
- 0x200c81,
- 0x2333c2,
- 0x36e144,
- 0x383043,
- 0x2007c1,
- 0x200901,
- 0x200041,
- 0x2001c1,
- 0x2dda87,
- 0x2b8f8f,
- 0x2cacc6,
+ 0x31f542,
+ 0x15f048,
+ 0x21d105,
+ 0x200701,
+ 0xd0783,
+ 0x200101,
0x2000c1,
- 0x25b806,
- 0x200341,
- 0x200ac1,
- 0x341ece,
- 0x201501,
- 0x2264c3,
- 0x2014c1,
- 0x260e05,
- 0x202002,
- 0x241f85,
- 0x200b81,
+ 0x201e41,
+ 0x29da82,
+ 0x36da04,
+ 0x372a43,
+ 0x200181,
+ 0x200941,
+ 0x200041,
+ 0x200081,
+ 0x2ed7c7,
+ 0x2eeccf,
+ 0x2fc146,
+ 0x201481,
+ 0x289786,
+ 0x200c01,
+ 0x2002c1,
+ 0x33168e,
+ 0x200381,
+ 0x200383,
+ 0x200e81,
+ 0x279e45,
+ 0x210582,
+ 0x2716c5,
+ 0x2003c1,
+ 0x200201,
0x200241,
+ 0x205bc2,
0x200a01,
- 0x203e42,
- 0x2002c1,
- 0x204701,
- 0x20dec1,
- 0x200781,
- 0x200641,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x21ca03,
- 0x22d183,
- 0x21eb03,
- 0x89ec8,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x14da788,
- 0x880c8,
- 0x441c4,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x238483,
- 0x2264c3,
- 0x204803,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x22d684,
- 0x2264c3,
- 0x28fb85,
- 0x27f304,
- 0x22d183,
- 0x238483,
- 0x2264c3,
- 0xa014a,
- 0x216582,
- 0x22d183,
- 0x2326c9,
- 0x2343c3,
- 0x23af09,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x2e24c8,
- 0x2100c7,
- 0x2e9cc5,
- 0x200707,
- 0x366a4b,
- 0x365188,
- 0x340a89,
- 0x22a807,
- 0x205348,
- 0x339b06,
- 0x33a6c7,
- 0x227548,
- 0x33b1c6,
- 0x335b07,
- 0x23d789,
- 0x37c409,
- 0x2b7006,
- 0x2b7e45,
- 0x2c2088,
- 0x268383,
- 0x2cab08,
- 0x2345c7,
- 0x208fc3,
- 0x326387,
- 0x2117c5,
- 0x2dc608,
- 0x310205,
- 0x293d03,
- 0x33b9c9,
- 0x2aa9c7,
- 0x35a244,
- 0x2f2ac4,
- 0x2f8f4b,
- 0x2f9288,
- 0x2fa987,
- 0x22d183,
- 0x2343c3,
- 0x211cc3,
- 0x2264c3,
- 0x21e503,
- 0x21eb03,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x653cb,
- 0x200882,
- 0x216582,
- 0x2264c3,
- 0x880c8,
- 0x200882,
- 0x216582,
- 0x201f82,
- 0x200a82,
- 0x200342,
- 0x238483,
- 0x201502,
- 0x200882,
- 0x323ac3,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x201f82,
- 0x21eb03,
- 0x202243,
- 0x211003,
- 0x212444,
- 0x238483,
- 0x21ab43,
- 0x2264c3,
- 0x2fd784,
- 0x223ec3,
- 0x21eb03,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2025c3,
- 0x2264c3,
- 0x39bd47,
- 0x22d183,
- 0x256b87,
- 0x2edfc6,
- 0x219203,
- 0x206ac3,
- 0x21eb03,
- 0x220883,
- 0x201604,
- 0x284804,
- 0x2d43c6,
- 0x20bac3,
- 0x238483,
- 0x2264c3,
- 0x28fb85,
- 0x20d4c4,
- 0x31a083,
- 0x217a03,
- 0x2bcdc7,
- 0x20b445,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x219f02,
- 0x380383,
- 0x2b2c83,
- 0x323ac3,
- 0x5822d183,
- 0x22b782,
- 0x2343c3,
- 0x208f43,
- 0x21eb03,
- 0x201604,
- 0x36b683,
- 0x280b03,
- 0x211003,
- 0x212444,
- 0x58606bc2,
- 0x238483,
- 0x2264c3,
- 0x232dc3,
- 0x245483,
- 0x221e42,
- 0x223ec3,
- 0x880c8,
- 0x21eb03,
- 0x307e44,
- 0x323ac3,
- 0x216582,
- 0x22d183,
- 0x2374c4,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x202243,
- 0x2f5d44,
- 0x307b04,
- 0x2cc5c6,
- 0x212444,
- 0x238483,
- 0x2264c3,
+ 0x201a81,
+ 0x2005c1,
+ 0x2007c1,
+ 0x200cc1,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
0x21bd03,
- 0x26a8c6,
- 0x1737cb,
- 0x1e1c6,
- 0x23d0a,
- 0xfcb8a,
- 0x880c8,
- 0x3a8204,
- 0x22d183,
- 0x323a84,
- 0x2343c3,
- 0x247b84,
- 0x21eb03,
- 0x251283,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x32248b,
- 0x39d94a,
- 0x3b298c,
- 0x200882,
- 0x216582,
- 0x201f82,
- 0x2a9c05,
- 0x201604,
- 0x206742,
- 0x211003,
- 0x307b04,
- 0x205902,
- 0x201502,
- 0x217642,
- 0x221e42,
- 0x123ac3,
- 0x357309,
- 0x254208,
- 0x301189,
- 0x33a509,
- 0x35bd8a,
- 0x23808a,
- 0x20cc82,
- 0x21dec2,
- 0x16582,
- 0x22d183,
- 0x200bc2,
- 0x2402c6,
- 0x354502,
- 0x202982,
- 0x3861ce,
- 0x21bc4e,
- 0x278107,
- 0x32fe47,
- 0x26b302,
- 0x2343c3,
- 0x21eb03,
- 0x202842,
- 0x200a82,
- 0x23d1cf,
- 0x204ec2,
- 0x33b3c7,
- 0x24cf87,
- 0x256107,
- 0x26204c,
- 0x268b4c,
- 0x2057c4,
- 0x2696ca,
- 0x21bb82,
- 0x209682,
- 0x2b2684,
- 0x215bc2,
- 0x2bb4c2,
- 0x268d84,
- 0x21ac42,
- 0x20b402,
- 0x33b247,
- 0x233285,
- 0x20a242,
- 0x23d144,
- 0x372e82,
- 0x2cea08,
- 0x238483,
- 0x3a2308,
- 0x203082,
- 0x235885,
- 0x3a25c6,
- 0x2264c3,
- 0x206a42,
- 0x2dd0c7,
- 0x2002,
- 0x26ccc5,
- 0x393e85,
- 0x2166c2,
- 0x226442,
- 0x31864a,
- 0x26404a,
- 0x210fc2,
- 0x376c04,
- 0x201a02,
- 0x38e588,
+ 0x2d0783,
+ 0x332ec3,
+ 0x91d48,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x48803,
+ 0x200383,
+ 0x14ebc48,
+ 0x15f048,
+ 0x4dcc4,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x204ac3,
+ 0x200383,
+ 0x205283,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x2da904,
+ 0x200383,
+ 0x293ac5,
+ 0x343984,
+ 0x2d0783,
+ 0x204ac3,
+ 0x200383,
+ 0x16b18a,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x22f489,
+ 0x231b83,
+ 0x2d2389,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x2f37c8,
+ 0x226647,
+ 0x370145,
+ 0x3a7f87,
+ 0x26b0cb,
+ 0x215cc8,
+ 0x32eac9,
+ 0x228087,
+ 0x200108,
+ 0x36f906,
+ 0x2344c7,
+ 0x29c108,
+ 0x2ab806,
+ 0x31d407,
+ 0x2aa449,
+ 0x2ba749,
+ 0x2c2ac6,
+ 0x2c38c5,
+ 0x2cce08,
+ 0x2b4783,
+ 0x2d7c88,
+ 0x231d87,
+ 0x206583,
+ 0x31d287,
+ 0x217905,
+ 0x2eeb08,
+ 0x359105,
+ 0x2cea43,
+ 0x23c289,
+ 0x2b0e87,
+ 0x35d504,
+ 0x2ff244,
+ 0x307ccb,
+ 0x308288,
+ 0x309587,
+ 0x2d0783,
+ 0x231b83,
+ 0x2135c3,
+ 0x200383,
+ 0x236ec3,
+ 0x332ec3,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x77fcb,
0x204cc2,
- 0x2fd448,
- 0x2f64c7,
- 0x2f67c9,
- 0x26cd42,
- 0x2fbb85,
- 0x2546c5,
- 0x2148cb,
- 0x2bfdcc,
- 0x22f848,
- 0x2fbf48,
- 0x260dc2,
- 0x20d782,
- 0x200882,
- 0x880c8,
- 0x216582,
- 0x22d183,
- 0x201f82,
- 0x205902,
- 0x201502,
- 0x2264c3,
- 0x217642,
- 0x200882,
- 0x5a616582,
- 0x5aa1eb03,
- 0x332683,
- 0x206742,
- 0x238483,
- 0x364e83,
- 0x2264c3,
- 0x2db083,
- 0x26b346,
- 0x1617643,
- 0x880c8,
- 0x51f05,
- 0xa7dcd,
- 0x5f007,
- 0x5b200182,
- 0x5b601002,
- 0x5ba04802,
- 0x5be01842,
- 0x5c2108c2,
- 0x5c602ec2,
- 0x16e747,
- 0x5ca16582,
- 0x5ce30542,
- 0x5d21e582,
- 0x5d600f82,
- 0x21bc43,
- 0x1b4284,
- 0x20ddc3,
- 0x5da18fc2,
- 0x5de038c2,
- 0x47887,
- 0x5e214b82,
- 0x5e600902,
- 0x5ea02ac2,
- 0x5ee082c2,
- 0x5f205602,
- 0x5f600a82,
- 0xb97c5,
- 0x226743,
- 0x30ec04,
- 0x5fa15bc2,
- 0x5fe16c82,
- 0x60200102,
- 0x7508b,
- 0x60600982,
- 0x60e09782,
- 0x61206742,
- 0x61600342,
- 0x61a50042,
- 0x61e03042,
- 0x6220e842,
- 0x62600e02,
- 0x62a06bc2,
- 0x62e01302,
- 0x63205902,
- 0x6361d302,
- 0x63a04242,
- 0x63e425c2,
- 0x133184,
- 0x371183,
- 0x64206602,
- 0x64613942,
- 0x64a06942,
- 0x64e03742,
- 0x65201502,
- 0x65607a82,
- 0x65547,
- 0x65a07442,
- 0x65e07482,
- 0x66217642,
- 0x6660a442,
- 0xeb58c,
- 0x66a24982,
- 0x66e6f2c2,
- 0x6721dcc2,
- 0x67603dc2,
- 0x67a2d742,
- 0x67e1eb82,
- 0x68204702,
- 0x68606f42,
- 0x68a71282,
- 0x68e15ac2,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x75803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x60b6b683,
- 0x275803,
- 0x377004,
- 0x254106,
- 0x2e6a83,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x200482,
- 0x200482,
- 0x36b683,
- 0x275803,
- 0x6962d183,
- 0x2343c3,
- 0x2a0fc3,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x880c8,
- 0x216582,
- 0x22d183,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x245dc4,
- 0x216582,
- 0x22d183,
- 0x308703,
- 0x2343c3,
- 0x247344,
- 0x211cc3,
- 0x21eb03,
- 0x201604,
- 0x202243,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x215cc3,
- 0x2e9cc5,
- 0x241403,
- 0x223ec3,
- 0x216582,
- 0x22d183,
- 0x36b683,
- 0x238483,
- 0x2264c3,
- 0x200882,
- 0x323ac3,
- 0x880c8,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x231ac6,
- 0x201604,
- 0x202243,
- 0x212444,
- 0x238483,
- 0x2264c3,
- 0x21bd03,
- 0x22d183,
- 0x2343c3,
- 0x238483,
- 0x2264c3,
- 0x22d183,
- 0x1e1c6,
- 0x2343c3,
- 0x21eb03,
- 0xd1906,
- 0x238483,
- 0x2264c3,
- 0x308a48,
- 0x30b989,
- 0x31bcc9,
- 0x326c48,
- 0x37efc8,
- 0x37efc9,
- 0x333c5,
- 0x200882,
- 0x20b285,
- 0x231b43,
- 0x6c216582,
- 0x2343c3,
- 0x21eb03,
- 0x22f647,
- 0x206003,
- 0x211003,
- 0x238483,
- 0x201f43,
- 0x210783,
- 0x2025c3,
- 0x2264c3,
- 0x3a5946,
- 0x203e42,
- 0x223ec3,
- 0x880c8,
- 0x200882,
- 0x323ac3,
- 0x216582,
- 0x22d183,
- 0x2343c3,
- 0x21eb03,
- 0x201604,
- 0x211003,
- 0x238483,
- 0x2264c3,
- 0x217643,
- 0x14fa806,
+ 0x20d1c2,
+ 0x200383,
+ 0x15f048,
+ 0x204cc2,
+ 0x20d1c2,
+ 0x208a42,
+ 0x201d42,
+ 0x203cc2,
+ 0x204ac3,
+ 0x200382,
+ 0x204cc2,
+ 0x368883,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x208a42,
+ 0x332ec3,
+ 0x204303,
+ 0x20fbc3,
+ 0x213184,
+ 0x204ac3,
+ 0x2183c3,
+ 0x200383,
+ 0x30b544,
+ 0x24abc3,
+ 0x332ec3,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x20abc3,
+ 0x200383,
+ 0x39db07,
+ 0x2d0783,
+ 0x26e5c7,
+ 0x362a86,
+ 0x215ac3,
+ 0x2041c3,
+ 0x332ec3,
+ 0x209e43,
+ 0x2964c4,
+ 0x38b704,
+ 0x30dbc6,
+ 0x201303,
+ 0x204ac3,
+ 0x200383,
+ 0x293ac5,
+ 0x318244,
+ 0x369dc3,
+ 0x37ed83,
+ 0x2c7a87,
+ 0x2387c5,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x203782,
+ 0x3ae343,
+ 0x2c2d43,
+ 0x368883,
+ 0x5fed0783,
+ 0x209c02,
+ 0x231b83,
+ 0x202743,
+ 0x332ec3,
+ 0x2964c4,
+ 0x23a0c3,
+ 0x2dfb83,
+ 0x20fbc3,
+ 0x213184,
+ 0x6020c002,
+ 0x204ac3,
+ 0x200383,
+ 0x209103,
+ 0x229b03,
+ 0x217082,
+ 0x24abc3,
+ 0x15f048,
+ 0x332ec3,
+ 0x1a5c3,
+ 0x2957c4,
+ 0x368883,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x23a184,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204303,
+ 0x2cee84,
+ 0x222044,
+ 0x201686,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x21aa03,
+ 0x2a32c6,
+ 0x3ddcb,
+ 0x28b86,
+ 0x4aa0a,
+ 0x10adca,
+ 0x15f048,
+ 0x20c504,
+ 0x2d0783,
+ 0x368844,
+ 0x231b83,
+ 0x256bc4,
+ 0x332ec3,
+ 0x262fc3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x32e84b,
+ 0x39f84a,
+ 0x3b478c,
+ 0x204cc2,
+ 0x20d1c2,
+ 0x208a42,
+ 0x2b0405,
+ 0x2964c4,
+ 0x201f02,
+ 0x20fbc3,
+ 0x222044,
+ 0x202082,
+ 0x200382,
+ 0x20c4c2,
+ 0x217082,
+ 0x168883,
+ 0xd882,
+ 0x2b2409,
+ 0x259f88,
+ 0x332d49,
+ 0x234309,
+ 0x23b18a,
+ 0x24550a,
+ 0x20a182,
+ 0x21c402,
+ 0xd1c2,
+ 0x2d0783,
+ 0x220802,
+ 0x2436c6,
+ 0x356fc2,
+ 0x20a542,
+ 0x21ad8e,
+ 0x21a94e,
+ 0x281a47,
+ 0x204a47,
+ 0x221202,
+ 0x231b83,
+ 0x332ec3,
+ 0x20b502,
+ 0x201d42,
+ 0x4143,
+ 0x24058f,
+ 0x26b142,
+ 0x362cc7,
+ 0x2fa1c7,
+ 0x39d487,
+ 0x31e28c,
+ 0x364d0c,
+ 0x202444,
+ 0x283b0a,
+ 0x21a882,
+ 0x201b02,
+ 0x2bc744,
+ 0x22b1c2,
+ 0x2c5c02,
+ 0x364f44,
+ 0x2184c2,
+ 0x205d82,
+ 0x5d83,
+ 0x2ab887,
+ 0x33d885,
+ 0x2073c2,
+ 0x240504,
+ 0x373102,
+ 0x2df088,
+ 0x204ac3,
+ 0x203808,
+ 0x203ac2,
+ 0x232d85,
+ 0x203ac6,
+ 0x200383,
+ 0x206ec2,
+ 0x2ef547,
+ 0x10582,
+ 0x350845,
+ 0x31d185,
+ 0x207c82,
+ 0x236b82,
+ 0x3a860a,
+ 0x27098a,
+ 0x212bc2,
+ 0x353f84,
+ 0x2018c2,
+ 0x3a2208,
+ 0x219682,
+ 0x2a2588,
+ 0x304987,
+ 0x304c89,
+ 0x2037c2,
+ 0x309e45,
+ 0x247e85,
+ 0x21424b,
+ 0x2ca84c,
+ 0x22c208,
+ 0x3186c8,
+ 0x2e7782,
+ 0x204642,
+ 0x204cc2,
+ 0x15f048,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x208a42,
+ 0x202082,
+ 0x200382,
+ 0x200383,
+ 0x20c4c2,
+ 0x204cc2,
+ 0x6260d1c2,
+ 0x62b32ec3,
+ 0x205d83,
+ 0x201f02,
+ 0x204ac3,
+ 0x3a8fc3,
+ 0x200383,
+ 0x2ec383,
+ 0x273d06,
+ 0x1613e83,
+ 0x15f048,
+ 0x63c85,
+ 0xae2cd,
+ 0xaafca,
+ 0x6ebc7,
+ 0x63201b82,
+ 0x63601442,
+ 0x63a00f82,
+ 0x63e02e02,
+ 0x642125c2,
+ 0x6460e542,
+ 0x13ecc7,
+ 0x64a0d1c2,
+ 0x64e0e482,
+ 0x6520fe42,
+ 0x65603b02,
+ 0x21a943,
+ 0x102c4,
+ 0x220a43,
+ 0x65a14002,
+ 0x65e023c2,
+ 0x51847,
+ 0x66214502,
+ 0x66600b82,
+ 0x66a00542,
+ 0x66e0a3c2,
+ 0x67202282,
+ 0x67601d42,
+ 0xbe445,
+ 0x221443,
+ 0x3b3bc4,
+ 0x67a2b1c2,
+ 0x67e42682,
+ 0x68202682,
+ 0x7e5cb,
+ 0x68600c02,
+ 0x68e513c2,
+ 0x69201f02,
+ 0x69603cc2,
+ 0x69a0bcc2,
+ 0x69e05f02,
+ 0x6a20b602,
+ 0x6a673fc2,
+ 0x6aa0c002,
+ 0x6ae04a02,
+ 0x6b202082,
+ 0x6b603702,
+ 0x6ba12982,
+ 0x6be31302,
+ 0x94fc4,
+ 0x358183,
+ 0x6c2126c2,
+ 0x6c61a582,
+ 0x6ca098c2,
+ 0x6ce00982,
+ 0x6d200382,
+ 0x6d604c82,
+ 0x78147,
+ 0x6da054c2,
+ 0x6de05502,
+ 0x6e20c4c2,
+ 0x6e609f42,
+ 0x19de4c,
+ 0x6ea22e82,
+ 0x6ee79242,
+ 0x6f200a02,
+ 0x6f606602,
+ 0x6fa019c2,
+ 0x6fe3b302,
+ 0x70206d02,
+ 0x70613882,
+ 0x70a7af82,
+ 0x70e43e02,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x75c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x68a3a0c3,
+ 0x2075c3,
+ 0x2db744,
+ 0x259e86,
+ 0x2f74c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x20d882,
+ 0x20d882,
+ 0x23a0c3,
+ 0x2075c3,
+ 0x716d0783,
+ 0x231b83,
+ 0x329e83,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x15f048,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x24fe44,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x3303c3,
+ 0x231b83,
+ 0x251304,
+ 0x2135c3,
+ 0x332ec3,
+ 0x2964c4,
+ 0x204303,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x2202c3,
+ 0x370145,
+ 0x2b2703,
+ 0x24abc3,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x23a0c3,
+ 0x204ac3,
+ 0x200383,
+ 0x204cc2,
+ 0x368883,
+ 0x15f048,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x22e886,
+ 0x2964c4,
+ 0x204303,
+ 0x213184,
+ 0x204ac3,
+ 0x200383,
+ 0x21aa03,
+ 0x2d0783,
+ 0x231b83,
+ 0x204ac3,
+ 0x200383,
+ 0x2d0783,
+ 0x28b86,
+ 0x231b83,
+ 0x332ec3,
+ 0xe1946,
+ 0x204ac3,
+ 0x200383,
+ 0x315cc8,
+ 0x318509,
+ 0x327a09,
+ 0x332548,
+ 0x37d888,
+ 0x37d889,
+ 0x9da85,
+ 0x204cc2,
+ 0x238605,
+ 0x205d43,
+ 0x7420d1c2,
+ 0x231b83,
+ 0x332ec3,
+ 0x33e387,
+ 0x265383,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x2104c3,
+ 0x212483,
+ 0x20abc3,
+ 0x200383,
+ 0x241f46,
+ 0x205bc2,
+ 0x24abc3,
+ 0x15f048,
+ 0x204cc2,
+ 0x368883,
+ 0x20d1c2,
+ 0x2d0783,
+ 0x231b83,
+ 0x332ec3,
+ 0x2964c4,
+ 0x20fbc3,
+ 0x204ac3,
+ 0x200383,
+ 0x213e83,
+ 0x153ca46,
}
// children is the list of nodes' children, the parent's wildcard bit and the
@@ -8636,439 +8623,471 @@ var children = [...]uint32{
0x40000000,
0x50000000,
0x60000000,
- 0x185c611,
- 0x1860617,
- 0x1880618,
- 0x19dc620,
- 0x19f0677,
- 0x1a0467c,
- 0x1a14681,
- 0x1a30685,
- 0x1a3468c,
- 0x1a4c68d,
- 0x1a70693,
- 0x1a7469c,
- 0x1a8c69d,
- 0x1a906a3,
+ 0x1860612,
+ 0x1864618,
+ 0x1884619,
+ 0x19e0621,
+ 0x19f4678,
+ 0x1a0867d,
+ 0x1a18682,
+ 0x1a34686,
+ 0x1a3868d,
+ 0x1a5068e,
+ 0x1a74694,
+ 0x1a7869d,
+ 0x1a9069e,
0x1a946a4,
- 0x1ab86a5,
- 0x1abc6ae,
- 0x21ac46af,
- 0x1b0c6b1,
- 0x1b106c3,
- 0x1b306c4,
- 0x1b446cc,
- 0x1b486d1,
- 0x1b786d2,
- 0x1b946de,
- 0x1bbc6e5,
- 0x1bc86ef,
- 0x1bcc6f2,
- 0x1c606f3,
- 0x1c74718,
- 0x1c8871d,
- 0x1cb8722,
- 0x1cc872e,
- 0x1cdc732,
- 0x1d00737,
- 0x1e18740,
- 0x1e1c786,
- 0x1e88787,
- 0x1e9c7a2,
- 0x1eb07a7,
- 0x1eb87ac,
- 0x1ec87ae,
- 0x1ecc7b2,
- 0x1ee47b3,
- 0x1f2c7b9,
- 0x1f447cb,
- 0x1f487d1,
- 0x1f4c7d2,
- 0x1f547d3,
- 0x1f907d5,
- 0x61f947e4,
- 0x1fa87e5,
- 0x1fac7ea,
- 0x1fb07eb,
- 0x1fc07ec,
- 0x20707f0,
- 0x207481c,
- 0x2207c81d,
- 0x2208081f,
+ 0x1a986a5,
+ 0x1ac06a6,
+ 0x1ac46b0,
+ 0x21acc6b1,
+ 0x1b146b3,
+ 0x1b186c5,
+ 0x1b386c6,
+ 0x1b4c6ce,
+ 0x1b506d3,
+ 0x1b806d4,
+ 0x1b9c6e0,
+ 0x1bc46e7,
+ 0x1bd06f1,
+ 0x1bd46f4,
+ 0x1c686f5,
+ 0x1c7c71a,
+ 0x1c9071f,
+ 0x1cc0724,
+ 0x1cd0730,
+ 0x1ce4734,
+ 0x1d08739,
+ 0x1e20742,
+ 0x1e24788,
+ 0x1e90789,
+ 0x1ea47a4,
+ 0x1eb87a9,
+ 0x1ec07ae,
+ 0x1ed07b0,
+ 0x1ed47b4,
+ 0x1eec7b5,
+ 0x1f347bb,
+ 0x1f4c7cd,
+ 0x1f507d3,
+ 0x1f547d4,
+ 0x1f5c7d5,
+ 0x1f987d7,
+ 0x61f9c7e6,
+ 0x1fb07e7,
+ 0x1fbc7ec,
+ 0x1fc07ef,
+ 0x1fd07f0,
+ 0x20807f4,
0x2084820,
- 0x20b8821,
- 0x20bc82e,
- 0x24f482f,
- 0x2254493d,
- 0x22548951,
- 0x2570952,
- 0x257895c,
- 0x2257c95e,
- 0x258495f,
- 0x22594961,
- 0x22598965,
- 0x25a4966,
- 0x225a8969,
- 0x25ac96a,
+ 0x22090821,
+ 0x22098824,
+ 0x20cc826,
+ 0x20d0833,
+ 0x2514834,
+ 0x225ac945,
0x225b096b,
- 0x25cc96c,
- 0x25e4973,
- 0x25e8979,
- 0x25f897a,
- 0x260097e,
- 0x22634980,
- 0x263898d,
- 0x264898e,
- 0x267c992,
+ 0x225b496c,
+ 0x225c096d,
+ 0x225c4970,
+ 0x225d0971,
+ 0x225d4974,
+ 0x225d8975,
+ 0x225dc976,
+ 0x225e0977,
+ 0x225e4978,
+ 0x225f0979,
+ 0x225f497c,
+ 0x2260097d,
+ 0x22604980,
+ 0x22608981,
+ 0x2260c982,
+ 0x22610983,
+ 0x22614984,
+ 0x2618985,
+ 0x2261c986,
+ 0x22628987,
+ 0x2262c98a,
+ 0x263498b,
+ 0x2264498d,
+ 0x22648991,
+ 0x2654992,
+ 0x22658995,
+ 0x265c996,
+ 0x22660997,
+ 0x267c998,
0x269499f,
- 0x26a89a5,
- 0x26d09aa,
- 0x26f09b4,
- 0x27209bc,
- 0x27489c8,
- 0x274c9d2,
- 0x27709d3,
- 0x27749dc,
- 0x27889dd,
- 0x278c9e2,
- 0x27909e3,
- 0x27b09e4,
- 0x27c09ec,
- 0x27d09f0,
- 0x27d49f4,
- 0x28489f5,
- 0x2864a12,
- 0x2870a19,
- 0x2884a1c,
- 0x289ca21,
- 0x28b0a27,
- 0x28c8a2c,
- 0x28e0a32,
- 0x28f8a38,
- 0x2914a3e,
- 0x292ca45,
- 0x298ca4b,
- 0x29a4a63,
- 0x29a8a69,
- 0x29bca6a,
- 0x2a00a6f,
- 0x2a80a80,
- 0x2aacaa0,
- 0x2ab0aab,
- 0x2ab8aac,
- 0x2ad8aae,
- 0x2adcab6,
- 0x2afcab7,
- 0x2b04abf,
- 0x2b3cac1,
- 0x2b78acf,
- 0x2b7cade,
- 0x2bbcadf,
- 0x2bd4aef,
- 0x2bf8af5,
- 0x2c18afe,
- 0x31dcb06,
- 0x31e8c77,
- 0x3208c7a,
- 0x33c4c82,
- 0x3494cf1,
- 0x3504d25,
- 0x355cd41,
- 0x3644d57,
- 0x369cd91,
- 0x36d8da7,
- 0x37d4db6,
- 0x38a0df5,
- 0x3938e28,
- 0x39c8e4e,
- 0x3a2ce72,
- 0x3c64e8b,
- 0x3d1cf19,
- 0x3de8f47,
- 0x3e34f7a,
- 0x3ebcf8d,
- 0x3ef8faf,
- 0x3f48fbe,
- 0x3fc0fd2,
- 0x63fc4ff0,
- 0x63fc8ff1,
- 0x63fccff2,
- 0x4048ff3,
- 0x40ad012,
- 0x412902b,
- 0x41a104a,
- 0x4221068,
- 0x428d088,
- 0x43b90a3,
- 0x44110ee,
- 0x64415104,
- 0x44ad105,
- 0x453512b,
- 0x458114d,
- 0x45e9160,
- 0x469117a,
- 0x47591a4,
- 0x47c11d6,
- 0x48d51f0,
- 0x648d9235,
- 0x648dd236,
- 0x4939237,
- 0x499524e,
- 0x4a25265,
- 0x4aa1289,
- 0x4ae52a8,
- 0x4bc92b9,
- 0x4bfd2f2,
- 0x4c5d2ff,
- 0x4cd1317,
- 0x4d59334,
- 0x4d99356,
- 0x4e09366,
- 0x64e0d382,
- 0x64e11383,
- 0x24e15384,
- 0x4e2d385,
- 0x4e4938b,
- 0x4e8d392,
- 0x4e9d3a3,
- 0x4eb53a7,
- 0x4f2d3ad,
- 0x4f353cb,
- 0x4f493cd,
- 0x4f613d2,
- 0x4f893d8,
- 0x4f8d3e2,
- 0x4f953e3,
- 0x4fa93e5,
- 0x4fc53ea,
- 0x4fc93f1,
- 0x4fd13f2,
- 0x500d3f4,
- 0x5021403,
- 0x5029408,
- 0x503140a,
- 0x503540c,
- 0x505940d,
- 0x507d416,
- 0x509541f,
- 0x5099425,
- 0x50a1426,
- 0x50a5428,
- 0x50f9429,
- 0x511d43e,
- 0x513d447,
- 0x515944f,
- 0x5169456,
- 0x517d45a,
- 0x518145f,
- 0x5189460,
- 0x519d462,
- 0x51ad467,
- 0x51b146b,
- 0x51cd46c,
- 0x5a5d473,
- 0x5a95697,
- 0x5ac16a5,
- 0x5ad96b0,
- 0x5af96b6,
- 0x5b196be,
- 0x5b5d6c6,
- 0x5b656d7,
- 0x25b696d9,
- 0x25b6d6da,
- 0x5b716db,
- 0x5c956dc,
- 0x25c99725,
- 0x25ca1726,
- 0x25ca9728,
- 0x25cb572a,
- 0x5cb972d,
- 0x5ce172e,
- 0x5d09738,
- 0x5d0d742,
- 0x25d45743,
- 0x5d59751,
- 0x68b1756,
- 0x68b5a2c,
- 0x68b9a2d,
- 0x268bda2e,
- 0x68c1a2f,
- 0x268c5a30,
- 0x68c9a31,
- 0x268d5a32,
- 0x68d9a35,
- 0x68dda36,
- 0x268e1a37,
- 0x68e5a38,
- 0x268eda39,
- 0x68f1a3b,
- 0x68f5a3c,
- 0x26905a3d,
- 0x6909a41,
- 0x690da42,
- 0x6911a43,
- 0x6915a44,
- 0x26919a45,
- 0x691da46,
- 0x6921a47,
- 0x6925a48,
- 0x6929a49,
- 0x26931a4a,
- 0x6935a4c,
- 0x6939a4d,
- 0x693da4e,
- 0x26941a4f,
- 0x6945a50,
- 0x2694da51,
- 0x26951a53,
- 0x696da54,
- 0x6979a5b,
- 0x69b9a5e,
- 0x69bda6e,
- 0x69e1a6f,
- 0x6b31a78,
- 0x26b39acc,
- 0x26b3dace,
- 0x26b41acf,
- 0x6b49ad0,
- 0x6c25ad2,
- 0x6c29b09,
- 0x6c55b0a,
- 0x6c75b15,
- 0x6c81b1d,
- 0x6ca1b20,
- 0x6cd9b28,
- 0x6f71b36,
- 0x702dbdc,
- 0x7041c0b,
- 0x7075c10,
- 0x70a5c1d,
- 0x70c1c29,
- 0x70e5c30,
- 0x7101c39,
- 0x711dc40,
- 0x7141c47,
- 0x7151c50,
- 0x7185c54,
- 0x71a1c61,
- 0x73adc68,
- 0x73d1ceb,
- 0x73f1cf4,
- 0x7405cfc,
- 0x7419d01,
- 0x7439d06,
- 0x74ddd0e,
- 0x74f9d37,
- 0x7515d3e,
+ 0x26989a5,
+ 0x26a89a6,
+ 0x26b09aa,
+ 0x26e49ac,
+ 0x26e89b9,
+ 0x26f89ba,
+ 0x27909be,
+ 0x227949e4,
+ 0x279c9e5,
+ 0x27a09e7,
+ 0x27b89e8,
+ 0x27cc9ee,
+ 0x27f49f3,
+ 0x28149fd,
+ 0x2844a05,
+ 0x286ca11,
+ 0x2870a1b,
+ 0x2894a1c,
+ 0x2898a25,
+ 0x28aca26,
+ 0x28b0a2b,
+ 0x28b4a2c,
+ 0x28d4a2d,
+ 0x28eca35,
+ 0x28f0a3b,
+ 0x228f4a3c,
+ 0x28f8a3d,
+ 0x2908a3e,
+ 0x290ca42,
+ 0x2984a43,
+ 0x29a0a61,
+ 0x29aca68,
+ 0x29c0a6b,
+ 0x29d8a70,
+ 0x29eca76,
+ 0x2a04a7b,
+ 0x2a1ca81,
+ 0x2a34a87,
+ 0x2a50a8d,
+ 0x2a68a94,
+ 0x2ac8a9a,
+ 0x2ae0ab2,
+ 0x2ae4ab8,
+ 0x2af8ab9,
+ 0x2b3cabe,
+ 0x2bbcacf,
+ 0x2be8aef,
+ 0x2becafa,
+ 0x2bf4afb,
+ 0x2c14afd,
+ 0x2c18b05,
+ 0x2c38b06,
+ 0x2c40b0e,
+ 0x2c78b10,
+ 0x2cb8b1e,
+ 0x2cbcb2e,
+ 0x2d0cb2f,
+ 0x2d10b43,
+ 0x22d14b44,
+ 0x2d2cb45,
+ 0x2d50b4b,
+ 0x2d70b54,
+ 0x3334b5c,
+ 0x3340ccd,
+ 0x3360cd0,
+ 0x351ccd8,
+ 0x35ecd47,
+ 0x365cd7b,
+ 0x36b4d97,
+ 0x379cdad,
+ 0x37f4de7,
+ 0x3830dfd,
+ 0x392ce0c,
+ 0x39f8e4b,
+ 0x3a90e7e,
+ 0x3b20ea4,
+ 0x3b84ec8,
+ 0x3dbcee1,
+ 0x3e74f6f,
+ 0x3f40f9d,
+ 0x3f8cfd0,
+ 0x4014fe3,
+ 0x4051005,
+ 0x40a1014,
+ 0x4119028,
+ 0x6411d046,
+ 0x64121047,
+ 0x64125048,
+ 0x41a1049,
+ 0x41fd068,
+ 0x427907f,
+ 0x42f109e,
+ 0x43710bc,
+ 0x43dd0dc,
+ 0x45090f7,
+ 0x4561142,
+ 0x64565158,
+ 0x45fd159,
+ 0x468517f,
+ 0x46d11a1,
+ 0x47391b4,
+ 0x47e11ce,
+ 0x48a91f8,
+ 0x491122a,
+ 0x4a25244,
+ 0x64a29289,
+ 0x64a2d28a,
+ 0x4a8928b,
+ 0x4ae52a2,
+ 0x4b752b9,
+ 0x4bf12dd,
+ 0x4c352fc,
+ 0x4d1930d,
+ 0x4d4d346,
+ 0x4dad353,
+ 0x4e2136b,
+ 0x4ea9388,
+ 0x4ee93aa,
+ 0x4f593ba,
+ 0x64f5d3d6,
+ 0x64f613d7,
+ 0x24f653d8,
+ 0x4f7d3d9,
+ 0x4f993df,
+ 0x4fdd3e6,
+ 0x4fed3f7,
+ 0x50053fb,
+ 0x507d401,
+ 0x508541f,
+ 0x5099421,
+ 0x50b1426,
+ 0x50d942c,
+ 0x50dd436,
+ 0x50e5437,
+ 0x50f9439,
+ 0x511543e,
+ 0x5119445,
+ 0x5121446,
+ 0x515d448,
+ 0x5171457,
+ 0x517945c,
+ 0x518145e,
+ 0x5185460,
+ 0x51a9461,
+ 0x51cd46a,
+ 0x51e5473,
+ 0x51e9479,
+ 0x51f147a,
+ 0x51f547c,
+ 0x524d47d,
+ 0x5271493,
+ 0x529149c,
+ 0x52ad4a4,
+ 0x52bd4ab,
+ 0x52d14af,
+ 0x52d54b4,
+ 0x52dd4b5,
+ 0x52f14b7,
+ 0x53014bc,
+ 0x53054c0,
+ 0x53214c1,
+ 0x5bb14c8,
+ 0x5be96ec,
+ 0x5c156fa,
+ 0x5c2d705,
+ 0x5c4d70b,
+ 0x5c6d713,
+ 0x5cb171b,
+ 0x5cb972c,
+ 0x25cbd72e,
+ 0x25cc172f,
+ 0x5cc5730,
+ 0x5e01731,
+ 0x25e05780,
+ 0x25e11781,
+ 0x25e19784,
+ 0x25e25786,
+ 0x5e29789,
+ 0x5e2d78a,
+ 0x5e5578b,
+ 0x5e7d795,
+ 0x5e8179f,
+ 0x5eb97a0,
+ 0x5ecd7ae,
+ 0x6a257b3,
+ 0x6a29a89,
+ 0x6a2da8a,
+ 0x26a31a8b,
+ 0x6a35a8c,
+ 0x26a39a8d,
+ 0x6a3da8e,
+ 0x26a49a8f,
+ 0x6a4da92,
+ 0x6a51a93,
+ 0x26a55a94,
+ 0x6a59a95,
+ 0x26a61a96,
+ 0x6a65a98,
+ 0x6a69a99,
+ 0x26a79a9a,
+ 0x6a7da9e,
+ 0x6a81a9f,
+ 0x6a85aa0,
+ 0x6a89aa1,
+ 0x26a8daa2,
+ 0x6a91aa3,
+ 0x6a95aa4,
+ 0x6a99aa5,
+ 0x6a9daa6,
+ 0x26aa5aa7,
+ 0x6aa9aa9,
+ 0x6aadaaa,
+ 0x6ab1aab,
+ 0x26ab5aac,
+ 0x6ab9aad,
+ 0x26ac1aae,
+ 0x26ac5ab0,
+ 0x6ae1ab1,
+ 0x6aedab8,
+ 0x6b2dabb,
+ 0x6b31acb,
+ 0x6b55acc,
+ 0x6b59ad5,
+ 0x6cc1ad6,
+ 0x26cc5b30,
+ 0x26ccdb31,
+ 0x26cd1b33,
+ 0x26cd5b34,
+ 0x6cddb35,
+ 0x6db9b37,
+ 0x6dbdb6e,
+ 0x6de9b6f,
+ 0x6dedb7a,
+ 0x6e0db7b,
+ 0x6e19b83,
+ 0x6e39b86,
+ 0x6e71b8e,
+ 0x7109b9c,
+ 0x71c5c42,
+ 0x71d9c71,
+ 0x720dc76,
+ 0x723dc83,
+ 0x7259c8f,
+ 0x727dc96,
+ 0x7299c9f,
+ 0x72b5ca6,
+ 0x72d9cad,
+ 0x72e9cb6,
+ 0x72edcba,
+ 0x7321cbb,
+ 0x733dcc8,
+ 0x7359ccf,
+ 0x737dcd6,
+ 0x739dcdf,
+ 0x73b1ce7,
+ 0x73c5cec,
+ 0x73c9cf1,
+ 0x73e9cf2,
+ 0x748dcfa,
+ 0x74a9d23,
+ 0x74c9d2a,
+ 0x74cdd32,
+ 0x74d1d33,
+ 0x74d5d34,
+ 0x74e9d35,
+ 0x7509d3a,
+ 0x7515d42,
0x7519d45,
- 0x751dd46,
- 0x7521d47,
- 0x7535d48,
- 0x7555d4d,
- 0x7561d55,
- 0x7565d58,
- 0x7595d59,
- 0x7615d65,
- 0x7629d85,
- 0x762dd8a,
- 0x7645d8b,
- 0x7649d91,
- 0x7655d92,
- 0x7659d95,
- 0x7675d96,
- 0x76b1d9d,
- 0x76b5dac,
- 0x76d5dad,
- 0x7725db5,
- 0x773ddc9,
- 0x7791dcf,
- 0x7795de4,
- 0x7799de5,
- 0x77ddde6,
- 0x77eddf7,
- 0x7825dfb,
- 0x7855e09,
- 0x7991e15,
- 0x79b5e64,
- 0x79e1e6d,
- 0x79ede78,
- 0x79f1e7b,
- 0x7b01e7c,
- 0x7b0dec0,
- 0x7b19ec3,
- 0x7b25ec6,
- 0x7b31ec9,
- 0x7b3decc,
- 0x7b49ecf,
- 0x7b55ed2,
- 0x7b61ed5,
- 0x7b6ded8,
+ 0x7549d46,
+ 0x75c9d52,
+ 0x75ddd72,
+ 0x75e1d77,
+ 0x75f9d78,
+ 0x75fdd7e,
+ 0x7609d7f,
+ 0x760dd82,
+ 0x7629d83,
+ 0x7665d8a,
+ 0x7669d99,
+ 0x7689d9a,
+ 0x76d9da2,
+ 0x76f1db6,
+ 0x7745dbc,
+ 0x7749dd1,
+ 0x774ddd2,
+ 0x7751dd3,
+ 0x7795dd4,
+ 0x77a5de5,
+ 0x77ddde9,
+ 0x780ddf7,
+ 0x7955e03,
+ 0x7979e55,
+ 0x79a5e5e,
+ 0x79b1e69,
+ 0x79b9e6c,
+ 0x7ac9e6e,
+ 0x7ad5eb2,
+ 0x7ae1eb5,
+ 0x7aedeb8,
+ 0x7af9ebb,
+ 0x7b05ebe,
+ 0x7b11ec1,
+ 0x7b1dec4,
+ 0x7b29ec7,
+ 0x7b35eca,
+ 0x7b41ecd,
+ 0x7b4ded0,
+ 0x7b59ed3,
+ 0x7b65ed6,
+ 0x7b6ded9,
0x7b79edb,
0x7b85ede,
0x7b91ee1,
0x7b9dee4,
- 0x7ba5ee7,
- 0x7bb1ee9,
- 0x7bbdeec,
- 0x7bc9eef,
- 0x7bd5ef2,
- 0x7be1ef5,
- 0x7bedef8,
- 0x7bf9efb,
- 0x7c05efe,
- 0x7c11f01,
- 0x7c1df04,
- 0x7c29f07,
- 0x7c35f0a,
- 0x7c41f0d,
+ 0x7ba9ee7,
+ 0x7bb5eea,
+ 0x7bc1eed,
+ 0x7bcdef0,
+ 0x7bd9ef3,
+ 0x7be5ef6,
+ 0x7bf1ef9,
+ 0x7bfdefc,
+ 0x7c09eff,
+ 0x7c15f02,
+ 0x7c21f05,
+ 0x7c2df08,
+ 0x7c39f0b,
+ 0x7c41f0e,
0x7c4df10,
0x7c59f13,
0x7c65f16,
0x7c71f19,
- 0x7c79f1c,
- 0x7c85f1e,
- 0x7c91f21,
- 0x7c9df24,
- 0x7ca9f27,
- 0x7cb5f2a,
- 0x7cc1f2d,
- 0x7ccdf30,
- 0x7cd9f33,
- 0x7ce5f36,
+ 0x7c7df1c,
+ 0x7c89f1f,
+ 0x7c95f22,
+ 0x7ca1f25,
+ 0x7cadf28,
+ 0x7cb9f2b,
+ 0x7cc5f2e,
+ 0x7cd1f31,
+ 0x7cddf34,
+ 0x7ce5f37,
0x7cf1f39,
0x7cfdf3c,
0x7d09f3f,
0x7d15f42,
- 0x7d1df45,
- 0x7d29f47,
- 0x7d35f4a,
- 0x7d41f4d,
- 0x7d4df50,
- 0x7d59f53,
- 0x7d65f56,
- 0x7d71f59,
- 0x7d7df5c,
- 0x7d81f5f,
- 0x7d8df60,
- 0x7da5f63,
- 0x7da9f69,
- 0x7db9f6a,
- 0x7dd1f6e,
- 0x7e15f74,
- 0x7e29f85,
- 0x7e5df8a,
- 0x7e6df97,
- 0x7e89f9b,
- 0x7ea1fa2,
- 0x7ea5fa8,
- 0x27ee9fa9,
- 0x7eedfba,
- 0x7f19fbb,
- 0x7f1dfc6,
+ 0x7d21f45,
+ 0x7d2df48,
+ 0x7d39f4b,
+ 0x7d45f4e,
+ 0x7d49f51,
+ 0x7d55f52,
+ 0x7d6df55,
+ 0x7d71f5b,
+ 0x7d81f5c,
+ 0x7d99f60,
+ 0x7dddf66,
+ 0x7df1f77,
+ 0x7e25f7c,
+ 0x7e35f89,
+ 0x7e51f8d,
+ 0x7e69f94,
+ 0x7e6df9a,
+ 0x27eb1f9b,
+ 0x7eb5fac,
+ 0x7ee1fad,
+ 0x7ee5fb8,
}
-// max children 434 (capacity 511)
-// max text offset 27930 (capacity 32767)
+// max children 466 (capacity 511)
+// max text offset 28023 (capacity 32767)
// max text length 36 (capacity 63)
-// max hi 8135 (capacity 16383)
-// max lo 8134 (capacity 16383)
+// max hi 8121 (capacity 16383)
+// max lo 8120 (capacity 16383)
diff --git a/vendor/golang.org/x/net/publicsuffix/table_test.go b/vendor/golang.org/x/net/publicsuffix/table_test.go
index 5433f3b17..f60c80e79 100644
--- a/vendor/golang.org/x/net/publicsuffix/table_test.go
+++ b/vendor/golang.org/x/net/publicsuffix/table_test.go
@@ -541,6 +541,7 @@ var rules = [...]string{
"org.cw",
"cx",
"gov.cx",
+ "cy",
"ac.cy",
"biz.cy",
"com.cy",
@@ -2207,9 +2208,7 @@ var rules = [...]string{
"aso.kumamoto.jp",
"choyo.kumamoto.jp",
"gyokuto.kumamoto.jp",
- "hitoyoshi.kumamoto.jp",
"kamiamakusa.kumamoto.jp",
- "kashima.kumamoto.jp",
"kikuchi.kumamoto.jp",
"kumamoto.kumamoto.jp",
"mashiki.kumamoto.jp",
@@ -3968,20 +3967,21 @@ var rules = [...]string{
"net.ng",
"org.ng",
"sch.ng",
+ "ni",
+ "ac.ni",
+ "biz.ni",
+ "co.ni",
"com.ni",
- "gob.ni",
"edu.ni",
- "org.ni",
- "nom.ni",
- "net.ni",
- "mil.ni",
- "co.ni",
- "biz.ni",
- "web.ni",
- "int.ni",
- "ac.ni",
+ "gob.ni",
"in.ni",
"info.ni",
+ "int.ni",
+ "mil.ni",
+ "net.ni",
+ "nom.ni",
+ "org.ni",
+ "web.ni",
"nl",
"bv.nl",
"no",
@@ -4775,6 +4775,7 @@ var rules = [...]string{
"net.om",
"org.om",
"pro.om",
+ "onion",
"org",
"pa",
"ac.pa",
@@ -5126,133 +5127,9 @@ var rules = [...]string{
"org.rs",
"ru",
"ac.ru",
- "com.ru",
"edu.ru",
- "int.ru",
- "net.ru",
- "org.ru",
- "pp.ru",
- "adygeya.ru",
- "altai.ru",
- "amur.ru",
- "arkhangelsk.ru",
- "astrakhan.ru",
- "bashkiria.ru",
- "belgorod.ru",
- "bir.ru",
- "bryansk.ru",
- "buryatia.ru",
- "cbg.ru",
- "chel.ru",
- "chelyabinsk.ru",
- "chita.ru",
- "chukotka.ru",
- "chuvashia.ru",
- "dagestan.ru",
- "dudinka.ru",
- "e-burg.ru",
- "grozny.ru",
- "irkutsk.ru",
- "ivanovo.ru",
- "izhevsk.ru",
- "jar.ru",
- "joshkar-ola.ru",
- "kalmykia.ru",
- "kaluga.ru",
- "kamchatka.ru",
- "karelia.ru",
- "kazan.ru",
- "kchr.ru",
- "kemerovo.ru",
- "khabarovsk.ru",
- "khakassia.ru",
- "khv.ru",
- "kirov.ru",
- "koenig.ru",
- "komi.ru",
- "kostroma.ru",
- "krasnoyarsk.ru",
- "kuban.ru",
- "kurgan.ru",
- "kursk.ru",
- "lipetsk.ru",
- "magadan.ru",
- "mari.ru",
- "mari-el.ru",
- "marine.ru",
- "mordovia.ru",
- "msk.ru",
- "murmansk.ru",
- "nalchik.ru",
- "nnov.ru",
- "nov.ru",
- "novosibirsk.ru",
- "nsk.ru",
- "omsk.ru",
- "orenburg.ru",
- "oryol.ru",
- "palana.ru",
- "penza.ru",
- "perm.ru",
- "ptz.ru",
- "rnd.ru",
- "ryazan.ru",
- "sakhalin.ru",
- "samara.ru",
- "saratov.ru",
- "simbirsk.ru",
- "smolensk.ru",
- "spb.ru",
- "stavropol.ru",
- "stv.ru",
- "surgut.ru",
- "tambov.ru",
- "tatarstan.ru",
- "tom.ru",
- "tomsk.ru",
- "tsaritsyn.ru",
- "tsk.ru",
- "tula.ru",
- "tuva.ru",
- "tver.ru",
- "tyumen.ru",
- "udm.ru",
- "udmurtia.ru",
- "ulan-ude.ru",
- "vladikavkaz.ru",
- "vladimir.ru",
- "vladivostok.ru",
- "volgograd.ru",
- "vologda.ru",
- "voronezh.ru",
- "vrn.ru",
- "vyatka.ru",
- "yakutia.ru",
- "yamal.ru",
- "yaroslavl.ru",
- "yekaterinburg.ru",
- "yuzhno-sakhalinsk.ru",
- "amursk.ru",
- "baikal.ru",
- "cmw.ru",
- "fareast.ru",
- "jamal.ru",
- "kms.ru",
- "k-uralsk.ru",
- "kustanai.ru",
- "kuzbass.ru",
- "mytis.ru",
- "nakhodka.ru",
- "nkz.ru",
- "norilsk.ru",
- "oskol.ru",
- "pyatigorsk.ru",
- "rubtsovsk.ru",
- "snz.ru",
- "syzran.ru",
- "vdonsk.ru",
- "zgrad.ru",
"gov.ru",
+ "int.ru",
"mil.ru",
"test.ru",
"rw",
@@ -6379,7 +6256,6 @@ var rules = [...]string{
"education",
"email",
"emerck",
- "emerson",
"energy",
"engineer",
"engineering",
@@ -6542,6 +6418,7 @@ var rules = [...]string{
"honda",
"honeywell",
"horse",
+ "hospital",
"host",
"hosting",
"hot",
@@ -7293,43 +7170,64 @@ var rules = [...]string{
"*.alces.network",
"*.alwaysdata.net",
"cloudfront.net",
- "compute.amazonaws.com",
- "ap-northeast-1.compute.amazonaws.com",
- "ap-northeast-2.compute.amazonaws.com",
- "ap-southeast-1.compute.amazonaws.com",
- "ap-southeast-2.compute.amazonaws.com",
- "eu-central-1.compute.amazonaws.com",
- "eu-west-1.compute.amazonaws.com",
- "sa-east-1.compute.amazonaws.com",
- "us-gov-west-1.compute.amazonaws.com",
- "us-west-1.compute.amazonaws.com",
- "us-west-2.compute.amazonaws.com",
- "compute-1.amazonaws.com",
- "z-1.compute-1.amazonaws.com",
- "z-2.compute-1.amazonaws.com",
+ "*.compute.amazonaws.com",
+ "*.compute-1.amazonaws.com",
+ "*.compute.amazonaws.com.cn",
"us-east-1.amazonaws.com",
- "compute.amazonaws.com.cn",
- "cn-north-1.compute.amazonaws.com.cn",
- "elasticbeanstalk.com",
- "elb.amazonaws.com",
- "s3.amazonaws.com",
+ "elasticbeanstalk.cn-north-1.amazonaws.com.cn",
+ "*.elasticbeanstalk.com",
+ "*.elb.amazonaws.com",
+ "*.elb.amazonaws.com.cn",
+ "*.s3.amazonaws.com",
"s3-ap-northeast-1.amazonaws.com",
"s3-ap-northeast-2.amazonaws.com",
+ "s3-ap-south-1.amazonaws.com",
"s3-ap-southeast-1.amazonaws.com",
"s3-ap-southeast-2.amazonaws.com",
+ "s3-ca-central-1.amazonaws.com",
"s3-eu-central-1.amazonaws.com",
"s3-eu-west-1.amazonaws.com",
"s3-external-1.amazonaws.com",
- "s3-external-2.amazonaws.com",
"s3-fips-us-gov-west-1.amazonaws.com",
"s3-sa-east-1.amazonaws.com",
"s3-us-gov-west-1.amazonaws.com",
+ "s3-us-east-2.amazonaws.com",
"s3-us-west-1.amazonaws.com",
"s3-us-west-2.amazonaws.com",
"s3.ap-northeast-2.amazonaws.com",
+ "s3.ap-south-1.amazonaws.com",
"s3.cn-north-1.amazonaws.com.cn",
+ "s3.ca-central-1.amazonaws.com",
"s3.eu-central-1.amazonaws.com",
+ "s3.us-east-2.amazonaws.com",
+ "s3.dualstack.ap-northeast-1.amazonaws.com",
+ "s3.dualstack.ap-northeast-2.amazonaws.com",
+ "s3.dualstack.ap-south-1.amazonaws.com",
+ "s3.dualstack.ap-southeast-1.amazonaws.com",
+ "s3.dualstack.ap-southeast-2.amazonaws.com",
+ "s3.dualstack.ca-central-1.amazonaws.com",
+ "s3.dualstack.eu-central-1.amazonaws.com",
+ "s3.dualstack.eu-west-1.amazonaws.com",
+ "s3.dualstack.sa-east-1.amazonaws.com",
+ "s3.dualstack.us-east-1.amazonaws.com",
+ "s3.dualstack.us-east-2.amazonaws.com",
+ "s3-website-us-east-1.amazonaws.com",
+ "s3-website-us-west-1.amazonaws.com",
+ "s3-website-us-west-2.amazonaws.com",
+ "s3-website-ap-northeast-1.amazonaws.com",
+ "s3-website-ap-southeast-1.amazonaws.com",
+ "s3-website-ap-southeast-2.amazonaws.com",
+ "s3-website-eu-west-1.amazonaws.com",
+ "s3-website-sa-east-1.amazonaws.com",
+ "s3-website.ap-northeast-2.amazonaws.com",
+ "s3-website.ap-south-1.amazonaws.com",
+ "s3-website.ca-central-1.amazonaws.com",
+ "s3-website.eu-central-1.amazonaws.com",
+ "s3-website.us-east-2.amazonaws.com",
+ "t3l3p0rt.net",
+ "tele.amune.org",
"on-aptible.com",
+ "user.party.eus",
"pimienta.org",
"poivron.org",
"potager.org",
@@ -7402,6 +7300,15 @@ var rules = [...]string{
"co.nl",
"co.no",
"*.platform.sh",
+ "dyn.cosidns.de",
+ "dynamisches-dns.de",
+ "dnsupdater.de",
+ "internet-dns.de",
+ "l-o-g-i-n.de",
+ "dynamic-dns.info",
+ "feste-ip.net",
+ "knx-server.net",
+ "static-access.net",
"realm.cz",
"*.cryptonomic.net",
"cupcake.is",
@@ -7701,8 +7608,19 @@ var rules = [...]string{
"webhop.org",
"worse-than.tv",
"writesthisblog.com",
+ "ddnss.de",
+ "dyn.ddnss.de",
+ "dyndns.ddnss.de",
+ "dyndns1.de",
+ "dyn-ip24.de",
+ "home-webserver.de",
+ "dyn.home-webserver.de",
+ "myhome-server.de",
+ "ddnss.org",
"dynv6.net",
"e4.cz",
+ "enonic.io",
+ "customer.enonic.io",
"eu.org",
"al.eu.org",
"asso.eu.org",
@@ -7764,11 +7682,14 @@ var rules = [...]string{
"us-1.evennode.com",
"us-2.evennode.com",
"apps.fbsbx.com",
+ "map.fastly.net",
+ "a.prod.fastly.net",
+ "global.prod.fastly.net",
"a.ssl.fastly.net",
"b.ssl.fastly.net",
"global.ssl.fastly.net",
- "a.prod.fastly.net",
- "global.prod.fastly.net",
+ "fastlylb.net",
+ "map.fastlylb.net",
"fhapp.xyz",
"firebaseapp.com",
"flynnhub.com",
@@ -7778,9 +7699,12 @@ var rules = [...]string{
"fbxos.fr",
"freebox-os.fr",
"freeboxos.fr",
+ "myfusion.cloud",
+ "futurehosting.at",
"futuremailing.at",
"*.ex.ortsinfo.at",
"*.kunden.ortsinfo.at",
+ "*.statics.cloud",
"service.gov.uk",
"github.io",
"githubusercontent.com",
@@ -7790,7 +7714,7 @@ var rules = [...]string{
"gist.githubcloud.com",
"*.githubcloudusercontent.com",
"gitlab.io",
- "ro.com",
+ "homeoffice.gov.uk",
"ro.im",
"shop.ro",
"goip.de",
@@ -8036,6 +7960,7 @@ var rules = [...]string{
"pantheonsite.io",
"gotpantheon.com",
"mypep.link",
+ "on-web.fr",
"xen.prgmr.com",
"priv.at",
"protonet.io",
@@ -8054,19 +7979,34 @@ var rules = [...]string{
"sandcats.io",
"logoip.de",
"logoip.com",
+ "firewall-gateway.com",
+ "firewall-gateway.de",
+ "my-gateway.de",
+ "my-router.de",
+ "spdns.de",
+ "spdns.eu",
+ "firewall-gateway.net",
+ "my-firewall.org",
+ "myfirewall.org",
+ "spdns.org",
"biz.ua",
"co.ua",
"pp.ua",
+ "shiftedit.io",
"myshopblocks.com",
+ "1kapp.com",
+ "appchizi.com",
+ "applinzi.com",
"sinaapp.com",
"vipsinaapp.com",
- "1kapp.com",
"bounty-full.com",
"alpha.bounty-full.com",
"beta.bounty-full.com",
"static.land",
"dev.static.land",
"sites.static.land",
+ "apps.lair.io",
+ "*.stolos.io",
"spacekit.io",
"stackspace.space",
"diskstation.me",
@@ -8094,16 +8034,41 @@ var rules = [...]string{
"*.transurl.eu",
"*.transurl.nl",
"tuxfamily.org",
+ "dd-dns.de",
+ "diskstation.eu",
+ "diskstation.org",
+ "dray-dns.de",
+ "draydns.de",
+ "dyn-vpn.de",
+ "dynvpn.de",
+ "mein-vigor.de",
+ "my-vigor.de",
+ "my-wan.de",
+ "syno-ds.de",
+ "synology-diskstation.de",
+ "synology-ds.de",
"hk.com",
"hk.org",
"ltd.hk",
"inc.hk",
"lib.de.us",
"router.management",
+ "remotewd.com",
"wmflabs.org",
"yolasite.com",
+ "ybo.faith",
+ "yombo.me",
+ "homelink.one",
+ "ybo.party",
+ "ybo.review",
+ "ybo.science",
+ "ybo.trade",
"za.net",
"za.org",
+ "now.sh",
+ "cc.ua",
+ "inf.ua",
+ "ltd.ua",
}
var nodeLabels = [...]string{
@@ -8497,7 +8462,6 @@ var nodeLabels = [...]string{
"eg",
"email",
"emerck",
- "emerson",
"energy",
"engineer",
"engineering",
@@ -8693,6 +8657,7 @@ var nodeLabels = [...]string{
"honda",
"honeywell",
"horse",
+ "hospital",
"host",
"hosting",
"hot",
@@ -9034,6 +8999,7 @@ var nodeLabels = [...]string{
"omega",
"one",
"ong",
+ "onion",
"onl",
"online",
"onyourside",
@@ -9811,6 +9777,7 @@ var nodeLabels = [...]string{
"ac",
"biz",
"co",
+ "futurehosting",
"futuremailing",
"gv",
"info",
@@ -10134,6 +10101,8 @@ var nodeLabels = [...]string{
"gov",
"mil",
"magentosite",
+ "myfusion",
+ "statics",
"cloudns",
"co",
"com",
@@ -10186,8 +10155,9 @@ var nodeLabels = [...]string{
"amazonaws",
"cn-north-1",
"compute",
+ "elb",
+ "elasticbeanstalk",
"s3",
- "cn-north-1",
"arts",
"com",
"edu",
@@ -10209,6 +10179,8 @@ var nodeLabels = [...]string{
"africa",
"alpha-myqnapcloud",
"amazonaws",
+ "appchizi",
+ "applinzi",
"appspot",
"ar",
"betainabox",
@@ -10265,6 +10237,7 @@ var nodeLabels = [...]string{
"familyds",
"fbsbx",
"firebaseapp",
+ "firewall-gateway",
"flynnhub",
"freebox-os",
"freeboxos",
@@ -10429,8 +10402,8 @@ var nodeLabels = [...]string{
"qc",
"quicksytes",
"rackmaze",
+ "remotewd",
"rhcloud",
- "ro",
"ru",
"sa",
"saves-the-whales",
@@ -10472,39 +10445,75 @@ var nodeLabels = [...]string{
"xenapponazure",
"yolasite",
"za",
+ "ap-northeast-1",
"ap-northeast-2",
+ "ap-south-1",
+ "ap-southeast-1",
+ "ap-southeast-2",
+ "ca-central-1",
"compute",
"compute-1",
"elb",
"eu-central-1",
+ "eu-west-1",
"s3",
"s3-ap-northeast-1",
"s3-ap-northeast-2",
+ "s3-ap-south-1",
"s3-ap-southeast-1",
"s3-ap-southeast-2",
+ "s3-ca-central-1",
"s3-eu-central-1",
"s3-eu-west-1",
"s3-external-1",
- "s3-external-2",
"s3-fips-us-gov-west-1",
"s3-sa-east-1",
+ "s3-us-east-2",
"s3-us-gov-west-1",
"s3-us-west-1",
"s3-us-west-2",
+ "s3-website-ap-northeast-1",
+ "s3-website-ap-southeast-1",
+ "s3-website-ap-southeast-2",
+ "s3-website-eu-west-1",
+ "s3-website-sa-east-1",
+ "s3-website-us-east-1",
+ "s3-website-us-west-1",
+ "s3-website-us-west-2",
+ "sa-east-1",
"us-east-1",
+ "us-east-2",
+ "dualstack",
"s3",
- "ap-northeast-1",
- "ap-northeast-2",
- "ap-southeast-1",
- "ap-southeast-2",
- "eu-central-1",
- "eu-west-1",
- "sa-east-1",
- "us-gov-west-1",
- "us-west-1",
- "us-west-2",
- "z-1",
- "z-2",
+ "dualstack",
+ "s3",
+ "s3-website",
+ "s3",
+ "dualstack",
+ "s3",
+ "s3-website",
+ "s3",
+ "dualstack",
+ "s3",
+ "dualstack",
+ "s3",
+ "dualstack",
+ "s3",
+ "s3-website",
+ "s3",
+ "dualstack",
+ "s3",
+ "s3-website",
+ "s3",
+ "dualstack",
+ "s3",
+ "dualstack",
+ "s3",
+ "dualstack",
+ "s3",
+ "dualstack",
+ "s3",
+ "s3-website",
"s3",
"alpha",
"beta",
@@ -10559,17 +10568,46 @@ var nodeLabels = [...]string{
"realm",
"blogspot",
"com",
+ "cosidns",
+ "dd-dns",
+ "ddnss",
"dnshome",
+ "dnsupdater",
+ "dray-dns",
+ "draydns",
+ "dyn-ip24",
+ "dyn-vpn",
+ "dynamisches-dns",
+ "dyndns1",
+ "dynvpn",
+ "firewall-gateway",
"fuettertdasnetz",
"goip",
+ "home-webserver",
+ "internet-dns",
"isteingeek",
"istmein",
"keymachine",
+ "l-o-g-i-n",
"lebtimnetz",
"leitungsen",
"logoip",
+ "mein-vigor",
+ "my-gateway",
+ "my-router",
+ "my-vigor",
+ "my-wan",
+ "myhome-server",
+ "spdns",
+ "syno-ds",
+ "synology-diskstation",
+ "synology-ds",
"taifun-dns",
"traeumtgerade",
+ "dyn",
+ "dyn",
+ "dyndns",
+ "dyn",
"biz",
"blogspot",
"co",
@@ -10648,9 +10686,14 @@ var nodeLabels = [...]string{
"net",
"org",
"cloudns",
+ "diskstation",
"mycd",
+ "spdns",
"transurl",
"wellbeingzone",
+ "party",
+ "user",
+ "ybo",
"aland",
"blogspot",
"dy",
@@ -10679,6 +10722,7 @@ var nodeLabels = [...]string{
"medecin",
"nom",
"notaires",
+ "on-web",
"pharmacien",
"port",
"prd",
@@ -10878,6 +10922,7 @@ var nodeLabels = [...]string{
"barrell-of-knowledge",
"cloudns",
"dvrcam",
+ "dynamic-dns",
"dyndns",
"for-our",
"groks-the",
@@ -10896,16 +10941,22 @@ var nodeLabels = [...]string{
"com",
"dedyn",
"drud",
+ "enonic",
"github",
"gitlab",
"hasura-app",
"hzc",
+ "lair",
"ngrok",
"nid",
"pantheonsite",
"protonet",
"sandcats",
+ "shiftedit",
"spacekit",
+ "stolos",
+ "customer",
+ "apps",
"com",
"edu",
"gov",
@@ -12226,9 +12277,7 @@ var nodeLabels = [...]string{
"aso",
"choyo",
"gyokuto",
- "hitoyoshi",
"kamiamakusa",
- "kashima",
"kikuchi",
"kumamoto",
"mashiki",
@@ -13289,6 +13338,7 @@ var nodeLabels = [...]string{
"priv",
"synology",
"webhop",
+ "yombo",
"co",
"com",
"edu",
@@ -13986,6 +14036,9 @@ var nodeLabels = [...]string{
"endofinternet",
"familyds",
"fastly",
+ "fastlylb",
+ "feste-ip",
+ "firewall-gateway",
"from-az",
"from-co",
"from-la",
@@ -14005,6 +14058,7 @@ var nodeLabels = [...]string{
"isa-geek",
"jp",
"kicks-ass",
+ "knx-server",
"mydissent",
"myeffect",
"myfritz",
@@ -14027,12 +14081,15 @@ var nodeLabels = [...]string{
"serveblog",
"serveftp",
"serveminecraft",
+ "static-access",
"sytes",
+ "t3l3p0rt",
"thruhere",
"uk",
"webhop",
"za",
"r",
+ "map",
"prod",
"ssl",
"a",
@@ -14040,6 +14097,7 @@ var nodeLabels = [...]string{
"a",
"b",
"global",
+ "map",
"alces",
"arts",
"com",
@@ -14883,7 +14941,9 @@ var nodeLabels = [...]string{
"net",
"org",
"pro",
+ "homelink",
"ae",
+ "amune",
"blogdns",
"blogsite",
"bmoattachments",
@@ -14895,6 +14955,8 @@ var nodeLabels = [...]string{
"cloudns",
"collegefan",
"couchpotatofries",
+ "ddnss",
+ "diskstation",
"dnsalias",
"dnsdojo",
"doesntexist",
@@ -14942,6 +15004,8 @@ var nodeLabels = [...]string{
"kicks-ass",
"misconfused",
"mlbfan",
+ "my-firewall",
+ "myfirewall",
"myftp",
"mysecuritycamera",
"nflfan",
@@ -14957,6 +15021,7 @@ var nodeLabels = [...]string{
"servebbs",
"serveftp",
"servegame",
+ "spdns",
"stuff-4-sale",
"sweetpepper",
"tunk",
@@ -14967,6 +15032,7 @@ var nodeLabels = [...]string{
"wmflabs",
"za",
"zapto",
+ "tele",
"c",
"rsc",
"origin",
@@ -15040,6 +15106,7 @@ var nodeLabels = [...]string{
"nom",
"org",
"sld",
+ "ybo",
"blogspot",
"com",
"edu",
@@ -15359,6 +15426,7 @@ var nodeLabels = [...]string{
"blogspot",
"com",
"nom",
+ "ybo",
"arts",
"blogspot",
"com",
@@ -15380,136 +15448,12 @@ var nodeLabels = [...]string{
"in",
"org",
"ac",
- "adygeya",
- "altai",
- "amur",
- "amursk",
- "arkhangelsk",
- "astrakhan",
- "baikal",
- "bashkiria",
- "belgorod",
- "bir",
"blogspot",
- "bryansk",
- "buryatia",
- "cbg",
- "chel",
- "chelyabinsk",
- "chita",
- "chukotka",
- "chuvashia",
- "cmw",
- "com",
- "dagestan",
- "dudinka",
- "e-burg",
"edu",
- "fareast",
"gov",
- "grozny",
"int",
- "irkutsk",
- "ivanovo",
- "izhevsk",
- "jamal",
- "jar",
- "joshkar-ola",
- "k-uralsk",
- "kalmykia",
- "kaluga",
- "kamchatka",
- "karelia",
- "kazan",
- "kchr",
- "kemerovo",
- "khabarovsk",
- "khakassia",
- "khv",
- "kirov",
- "kms",
- "koenig",
- "komi",
- "kostroma",
- "krasnoyarsk",
- "kuban",
- "kurgan",
- "kursk",
- "kustanai",
- "kuzbass",
- "lipetsk",
- "magadan",
- "mari",
- "mari-el",
- "marine",
"mil",
- "mordovia",
- "msk",
- "murmansk",
- "mytis",
- "nakhodka",
- "nalchik",
- "net",
- "nkz",
- "nnov",
- "norilsk",
- "nov",
- "novosibirsk",
- "nsk",
- "omsk",
- "orenburg",
- "org",
- "oryol",
- "oskol",
- "palana",
- "penza",
- "perm",
- "pp",
- "ptz",
- "pyatigorsk",
- "rnd",
- "rubtsovsk",
- "ryazan",
- "sakhalin",
- "samara",
- "saratov",
- "simbirsk",
- "smolensk",
- "snz",
- "spb",
- "stavropol",
- "stv",
- "surgut",
- "syzran",
- "tambov",
- "tatarstan",
"test",
- "tom",
- "tomsk",
- "tsaritsyn",
- "tsk",
- "tula",
- "tuva",
- "tver",
- "tyumen",
- "udm",
- "udmurtia",
- "ulan-ude",
- "vdonsk",
- "vladikavkaz",
- "vladimir",
- "vladivostok",
- "volgograd",
- "vologda",
- "voronezh",
- "vrn",
- "vyatka",
- "yakutia",
- "yamal",
- "yaroslavl",
- "yekaterinburg",
- "yuzhno-sakhalinsk",
- "zgrad",
"ac",
"co",
"com",
@@ -15537,6 +15481,7 @@ var nodeLabels = [...]string{
"gov",
"net",
"org",
+ "ybo",
"com",
"edu",
"gov",
@@ -15598,6 +15543,7 @@ var nodeLabels = [...]string{
"hashbang",
"mil",
"net",
+ "now",
"org",
"platform",
"blogspot",
@@ -15761,6 +15707,7 @@ var nodeLabels = [...]string{
"web",
"blogspot",
"gov",
+ "ybo",
"aero",
"biz",
"co",
@@ -15809,6 +15756,7 @@ var nodeLabels = [...]string{
"sc",
"tv",
"biz",
+ "cc",
"cherkassy",
"cherkasy",
"chernigov",
@@ -15832,6 +15780,7 @@ var nodeLabels = [...]string{
"gov",
"if",
"in",
+ "inf",
"ivano-frankivsk",
"kh",
"kharkiv",
@@ -15849,6 +15798,7 @@ var nodeLabels = [...]string{
"kyiv",
"lg",
"lt",
+ "ltd",
"lugansk",
"lutsk",
"lv",
@@ -15910,6 +15860,7 @@ var nodeLabels = [...]string{
"blogspot",
"no-ip",
"wellbeingzone",
+ "homeoffice",
"service",
"ak",
"al",
diff --git a/vendor/golang.org/x/net/route/address.go b/vendor/golang.org/x/net/route/address.go
index a56909c10..e6bfa39e9 100644
--- a/vendor/golang.org/x/net/route/address.go
+++ b/vendor/golang.org/x/net/route/address.go
@@ -24,6 +24,39 @@ type LinkAddr struct {
// Family implements the Family method of Addr interface.
func (a *LinkAddr) Family() int { return sysAF_LINK }
+func (a *LinkAddr) lenAndSpace() (int, int) {
+ l := 8 + len(a.Name) + len(a.Addr)
+ return l, roundup(l)
+}
+
+func (a *LinkAddr) marshal(b []byte) (int, error) {
+ l, ll := a.lenAndSpace()
+ if len(b) < ll {
+ return 0, errShortBuffer
+ }
+ nlen, alen := len(a.Name), len(a.Addr)
+ if nlen > 255 || alen > 255 {
+ return 0, errInvalidAddr
+ }
+ b[0] = byte(l)
+ b[1] = sysAF_LINK
+ if a.Index > 0 {
+ nativeEndian.PutUint16(b[2:4], uint16(a.Index))
+ }
+ data := b[8:]
+ if nlen > 0 {
+ b[5] = byte(nlen)
+ copy(data[:nlen], a.Addr)
+ data = data[nlen:]
+ }
+ if alen > 0 {
+ b[6] = byte(alen)
+ copy(data[:alen], a.Name)
+ data = data[alen:]
+ }
+ return ll, nil
+}
+
func parseLinkAddr(b []byte) (Addr, error) {
if len(b) < 8 {
return nil, errInvalidAddr
@@ -90,6 +123,21 @@ type Inet4Addr struct {
// Family implements the Family method of Addr interface.
func (a *Inet4Addr) Family() int { return sysAF_INET }
+func (a *Inet4Addr) lenAndSpace() (int, int) {
+ return sizeofSockaddrInet, roundup(sizeofSockaddrInet)
+}
+
+func (a *Inet4Addr) marshal(b []byte) (int, error) {
+ l, ll := a.lenAndSpace()
+ if len(b) < ll {
+ return 0, errShortBuffer
+ }
+ b[0] = byte(l)
+ b[1] = sysAF_INET
+ copy(b[4:8], a.IP[:])
+ return ll, nil
+}
+
// An Inet6Addr represents an internet address for IPv6.
type Inet6Addr struct {
IP [16]byte // IP address
@@ -99,18 +147,36 @@ type Inet6Addr struct {
// Family implements the Family method of Addr interface.
func (a *Inet6Addr) Family() int { return sysAF_INET6 }
+func (a *Inet6Addr) lenAndSpace() (int, int) {
+ return sizeofSockaddrInet6, roundup(sizeofSockaddrInet6)
+}
+
+func (a *Inet6Addr) marshal(b []byte) (int, error) {
+ l, ll := a.lenAndSpace()
+ if len(b) < ll {
+ return 0, errShortBuffer
+ }
+ b[0] = byte(l)
+ b[1] = sysAF_INET6
+ copy(b[8:24], a.IP[:])
+ if a.ZoneID > 0 {
+ nativeEndian.PutUint32(b[24:28], uint32(a.ZoneID))
+ }
+ return ll, nil
+}
+
// parseInetAddr parses b as an internet address for IPv4 or IPv6.
func parseInetAddr(af int, b []byte) (Addr, error) {
switch af {
case sysAF_INET:
- if len(b) < 16 {
+ if len(b) < sizeofSockaddrInet {
return nil, errInvalidAddr
}
a := &Inet4Addr{}
copy(a.IP[:], b[4:8])
return a, nil
case sysAF_INET6:
- if len(b) < 28 {
+ if len(b) < sizeofSockaddrInet6 {
return nil, errInvalidAddr
}
a := &Inet6Addr{ZoneID: int(nativeEndian.Uint32(b[24:28]))}
@@ -174,7 +240,7 @@ func parseKernelInetAddr(af int, b []byte) (int, Addr, error) {
off6 = 8 // offset of in6_addr
)
switch {
- case b[0] == 28: // size of sockaddr_in6
+ case b[0] == sizeofSockaddrInet6:
a := &Inet6Addr{}
copy(a.IP[:], b[off6:off6+16])
return int(b[0]), a, nil
@@ -186,7 +252,7 @@ func parseKernelInetAddr(af int, b []byte) (int, Addr, error) {
copy(a.IP[:], b[l-off6:l])
}
return int(b[0]), a, nil
- case b[0] == 16: // size of sockaddr_in
+ case b[0] == sizeofSockaddrInet:
a := &Inet4Addr{}
copy(a.IP[:], b[off4:off4+4])
return int(b[0]), a, nil
@@ -211,6 +277,24 @@ type DefaultAddr struct {
// Family implements the Family method of Addr interface.
func (a *DefaultAddr) Family() int { return a.af }
+func (a *DefaultAddr) lenAndSpace() (int, int) {
+ l := len(a.Raw)
+ return l, roundup(l)
+}
+
+func (a *DefaultAddr) marshal(b []byte) (int, error) {
+ l, ll := a.lenAndSpace()
+ if len(b) < ll {
+ return 0, errShortBuffer
+ }
+ if l > 255 {
+ return 0, errInvalidAddr
+ }
+ b[1] = byte(l)
+ copy(b[:l], a.Raw)
+ return ll, nil
+}
+
func parseDefaultAddr(b []byte) (Addr, error) {
if len(b) < 2 || len(b) < int(b[0]) {
return nil, errInvalidAddr
@@ -219,6 +303,66 @@ func parseDefaultAddr(b []byte) (Addr, error) {
return a, nil
}
+func addrsSpace(as []Addr) int {
+ var l int
+ for _, a := range as {
+ switch a := a.(type) {
+ case *LinkAddr:
+ _, ll := a.lenAndSpace()
+ l += ll
+ case *Inet4Addr:
+ _, ll := a.lenAndSpace()
+ l += ll
+ case *Inet6Addr:
+ _, ll := a.lenAndSpace()
+ l += ll
+ case *DefaultAddr:
+ _, ll := a.lenAndSpace()
+ l += ll
+ }
+ }
+ return l
+}
+
+// marshalAddrs marshals as and returns a bitmap indicating which
+// address is stored in b.
+func marshalAddrs(b []byte, as []Addr) (uint, error) {
+ var attrs uint
+ for i, a := range as {
+ switch a := a.(type) {
+ case *LinkAddr:
+ l, err := a.marshal(b)
+ if err != nil {
+ return 0, err
+ }
+ b = b[l:]
+ attrs |= 1 << uint(i)
+ case *Inet4Addr:
+ l, err := a.marshal(b)
+ if err != nil {
+ return 0, err
+ }
+ b = b[l:]
+ attrs |= 1 << uint(i)
+ case *Inet6Addr:
+ l, err := a.marshal(b)
+ if err != nil {
+ return 0, err
+ }
+ b = b[l:]
+ attrs |= 1 << uint(i)
+ case *DefaultAddr:
+ l, err := a.marshal(b)
+ if err != nil {
+ return 0, err
+ }
+ b = b[l:]
+ attrs |= 1 << uint(i)
+ }
+ }
+ return attrs, nil
+}
+
func parseAddrs(attrs uint, fn func(int, []byte) (int, Addr, error), b []byte) ([]Addr, error) {
var as [sysRTAX_MAX]Addr
af := int(sysAF_UNSPEC)
diff --git a/vendor/golang.org/x/net/route/binary.go b/vendor/golang.org/x/net/route/binary.go
index 4c561631b..6910520ec 100644
--- a/vendor/golang.org/x/net/route/binary.go
+++ b/vendor/golang.org/x/net/route/binary.go
@@ -9,7 +9,7 @@ package route
// This file contains duplicates of encoding/binary package.
//
// This package is supposed to be used by the net package of standard
-// library. Therefore a package set used in the package must be the
+// library. Therefore the package set used in the package must be the
// same as net package.
var (
diff --git a/vendor/golang.org/x/net/route/defs_darwin.go b/vendor/golang.org/x/net/route/defs_darwin.go
index f452ad14c..e7716442d 100644
--- a/vendor/golang.org/x/net/route/defs_darwin.go
+++ b/vendor/golang.org/x/net/route/defs_darwin.go
@@ -13,6 +13,8 @@ package route
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
+
+#include <netinet/in.h>
*/
import "C"
@@ -23,6 +25,8 @@ const (
sysAF_LINK = C.AF_LINK
sysAF_INET6 = C.AF_INET6
+ sysSOCK_RAW = C.SOCK_RAW
+
sysNET_RT_DUMP = C.NET_RT_DUMP
sysNET_RT_FLAGS = C.NET_RT_FLAGS
sysNET_RT_IFLIST = C.NET_RT_IFLIST
@@ -103,4 +107,8 @@ const (
sizeofRtMsghdrDarwin15 = C.sizeof_struct_rt_msghdr
sizeofRtMsghdr2Darwin15 = C.sizeof_struct_rt_msghdr2
sizeofRtMetricsDarwin15 = C.sizeof_struct_rt_metrics
+
+ sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
+ sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
+ sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
)
diff --git a/vendor/golang.org/x/net/route/defs_dragonfly.go b/vendor/golang.org/x/net/route/defs_dragonfly.go
index c737751d7..dd31de269 100644
--- a/vendor/golang.org/x/net/route/defs_dragonfly.go
+++ b/vendor/golang.org/x/net/route/defs_dragonfly.go
@@ -13,6 +13,8 @@ package route
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
+
+#include <netinet/in.h>
*/
import "C"
@@ -23,6 +25,8 @@ const (
sysAF_LINK = C.AF_LINK
sysAF_INET6 = C.AF_INET6
+ sysSOCK_RAW = C.SOCK_RAW
+
sysNET_RT_DUMP = C.NET_RT_DUMP
sysNET_RT_FLAGS = C.NET_RT_FLAGS
sysNET_RT_IFLIST = C.NET_RT_IFLIST
@@ -102,4 +106,8 @@ const (
sizeofRtMsghdrDragonFlyBSD4 = C.sizeof_struct_rt_msghdr
sizeofRtMetricsDragonFlyBSD4 = C.sizeof_struct_rt_metrics
+
+ sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
+ sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
+ sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
)
diff --git a/vendor/golang.org/x/net/route/defs_freebsd.go b/vendor/golang.org/x/net/route/defs_freebsd.go
index 8f834e81d..d95594d8e 100644
--- a/vendor/golang.org/x/net/route/defs_freebsd.go
+++ b/vendor/golang.org/x/net/route/defs_freebsd.go
@@ -14,6 +14,8 @@ package route
#include <net/if_dl.h>
#include <net/route.h>
+#include <netinet/in.h>
+
struct if_data_freebsd7 {
u_char ifi_type;
u_char ifi_physical;
@@ -222,6 +224,8 @@ const (
sysAF_LINK = C.AF_LINK
sysAF_INET6 = C.AF_INET6
+ sysSOCK_RAW = C.SOCK_RAW
+
sysNET_RT_DUMP = C.NET_RT_DUMP
sysNET_RT_FLAGS = C.NET_RT_FLAGS
sysNET_RT_IFLIST = C.NET_RT_IFLIST
@@ -326,4 +330,8 @@ const (
sizeofIfDataFreeBSD9Emu = C.sizeof_struct_if_data_freebsd9
sizeofIfDataFreeBSD10Emu = C.sizeof_struct_if_data_freebsd10
sizeofIfDataFreeBSD11Emu = C.sizeof_struct_if_data_freebsd11
+
+ sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
+ sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
+ sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
)
diff --git a/vendor/golang.org/x/net/route/defs_netbsd.go b/vendor/golang.org/x/net/route/defs_netbsd.go
index b18d85e01..b0abd549a 100644
--- a/vendor/golang.org/x/net/route/defs_netbsd.go
+++ b/vendor/golang.org/x/net/route/defs_netbsd.go
@@ -13,6 +13,8 @@ package route
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
+
+#include <netinet/in.h>
*/
import "C"
@@ -23,6 +25,8 @@ const (
sysAF_LINK = C.AF_LINK
sysAF_INET6 = C.AF_INET6
+ sysSOCK_RAW = C.SOCK_RAW
+
sysNET_RT_DUMP = C.NET_RT_DUMP
sysNET_RT_FLAGS = C.NET_RT_FLAGS
sysNET_RT_IFLIST = C.NET_RT_IFLIST
@@ -101,4 +105,8 @@ const (
sizeofRtMsghdrNetBSD7 = C.sizeof_struct_rt_msghdr
sizeofRtMetricsNetBSD7 = C.sizeof_struct_rt_metrics
+
+ sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
+ sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
+ sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
)
diff --git a/vendor/golang.org/x/net/route/defs_openbsd.go b/vendor/golang.org/x/net/route/defs_openbsd.go
index 5df7a43bc..0f66d3619 100644
--- a/vendor/golang.org/x/net/route/defs_openbsd.go
+++ b/vendor/golang.org/x/net/route/defs_openbsd.go
@@ -13,6 +13,8 @@ package route
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
+
+#include <netinet/in.h>
*/
import "C"
@@ -23,6 +25,8 @@ const (
sysAF_LINK = C.AF_LINK
sysAF_INET6 = C.AF_INET6
+ sysSOCK_RAW = C.SOCK_RAW
+
sysNET_RT_DUMP = C.NET_RT_DUMP
sysNET_RT_FLAGS = C.NET_RT_FLAGS
sysNET_RT_IFLIST = C.NET_RT_IFLIST
@@ -91,3 +95,11 @@ const (
sysRTAX_LABEL = C.RTAX_LABEL
sysRTAX_MAX = C.RTAX_MAX
)
+
+const (
+ sizeofRtMsghdr = C.sizeof_struct_rt_msghdr
+
+ sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
+ sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
+ sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
+)
diff --git a/vendor/golang.org/x/net/route/message.go b/vendor/golang.org/x/net/route/message.go
index d7ae0eb50..0fa7e09f4 100644
--- a/vendor/golang.org/x/net/route/message.go
+++ b/vendor/golang.org/x/net/route/message.go
@@ -7,9 +7,6 @@
package route
// A Message represents a routing message.
-//
-// Note: This interface will be changed to support Marshal method in
-// future version.
type Message interface {
// Sys returns operating system-specific information.
Sys() []Sys
@@ -52,11 +49,10 @@ func ParseRIB(typ RIBType, b []byte) ([]Message, error) {
b = b[l:]
continue
}
- mtyp := int(b[3])
- if fn, ok := parseFns[mtyp]; !ok {
+ if w, ok := wireFormats[int(b[3])]; !ok {
nskips++
} else {
- m, err := fn(typ, b)
+ m, err := w.parse(typ, b)
if err != nil {
return nil, err
}
diff --git a/vendor/golang.org/x/net/route/message_test.go b/vendor/golang.org/x/net/route/message_test.go
index c0c7c57a9..b3bc60c62 100644
--- a/vendor/golang.org/x/net/route/message_test.go
+++ b/vendor/golang.org/x/net/route/message_test.go
@@ -33,11 +33,28 @@ func TestFetchAndParseRIB(t *testing.T) {
}
}
+var (
+ rtmonSock int
+ rtmonErr error
+)
+
+func init() {
+ // We need to keep rtmonSock alive to avoid treading on
+ // recycled socket descriptors.
+ rtmonSock, rtmonErr = syscall.Socket(sysAF_ROUTE, sysSOCK_RAW, sysAF_UNSPEC)
+}
+
+// TestMonitorAndParseRIB leaks a worker goroutine and a socket
+// descriptor but that's intentional.
func TestMonitorAndParseRIB(t *testing.T) {
if testing.Short() || os.Getuid() != 0 {
t.Skip("must be root")
}
+ if rtmonErr != nil {
+ t.Fatal(rtmonErr)
+ }
+
// We suppose that using an IPv4 link-local address and the
// dot1Q ID for Token Ring and FDDI doesn't harm anyone.
pv := &propVirtual{addr: "169.254.0.1", mask: "255.255.255.0"}
@@ -49,16 +66,18 @@ func TestMonitorAndParseRIB(t *testing.T) {
}
pv.teardown()
- s, err := syscall.Socket(syscall.AF_ROUTE, syscall.SOCK_RAW, syscall.AF_UNSPEC)
- if err != nil {
- t.Fatal(err)
- }
- defer syscall.Close(s)
-
go func() {
b := make([]byte, os.Getpagesize())
for {
- n, err := syscall.Read(s, b)
+ // There's no easy way to unblock this read
+ // call because the routing message exchange
+ // over routing socket is a connectionless
+ // message-oriented protocol, no control plane
+ // for signaling connectivity, and we cannot
+ // use the net package of standard library due
+ // to the lack of support for routing socket
+ // and circular dependency.
+ n, err := syscall.Read(rtmonSock, b)
if err != nil {
return
}
@@ -116,3 +135,99 @@ func TestParseRIBWithFuzz(t *testing.T) {
}
}
}
+
+func TestRouteMessage(t *testing.T) {
+ s, err := syscall.Socket(sysAF_ROUTE, sysSOCK_RAW, sysAF_UNSPEC)
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer syscall.Close(s)
+
+ var ms []RouteMessage
+ for _, af := range []int{sysAF_INET, sysAF_INET6} {
+ rs, err := fetchAndParseRIB(af, sysNET_RT_DUMP)
+ if err != nil || len(rs) == 0 {
+ continue
+ }
+ switch af {
+ case sysAF_INET:
+ ms = append(ms, []RouteMessage{
+ {
+ Type: sysRTM_GET,
+ Addrs: []Addr{
+ &Inet4Addr{IP: [4]byte{127, 0, 0, 1}},
+ nil,
+ nil,
+ nil,
+ &LinkAddr{},
+ &Inet4Addr{},
+ nil,
+ &Inet4Addr{},
+ },
+ },
+ {
+ Type: sysRTM_GET,
+ Addrs: []Addr{
+ &Inet4Addr{IP: [4]byte{127, 0, 0, 1}},
+ },
+ },
+ }...)
+ case sysAF_INET6:
+ ms = append(ms, []RouteMessage{
+ {
+ Type: sysRTM_GET,
+ Addrs: []Addr{
+ &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}},
+ nil,
+ nil,
+ nil,
+ &LinkAddr{},
+ &Inet6Addr{},
+ nil,
+ &Inet6Addr{},
+ },
+ },
+ {
+ Type: sysRTM_GET,
+ Addrs: []Addr{
+ &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}},
+ },
+ },
+ }...)
+ }
+ }
+ for i, m := range ms {
+ m.ID = uintptr(os.Getpid())
+ m.Seq = i + 1
+ wb, err := m.Marshal()
+ if err != nil {
+ t.Fatalf("%v: %v", m, err)
+ }
+ if _, err := syscall.Write(s, wb); err != nil {
+ t.Fatalf("%v: %v", m, err)
+ }
+ rb := make([]byte, os.Getpagesize())
+ n, err := syscall.Read(s, rb)
+ if err != nil {
+ t.Fatalf("%v: %v", m, err)
+ }
+ rms, err := ParseRIB(0, rb[:n])
+ if err != nil {
+ t.Fatalf("%v: %v", m, err)
+ }
+ for _, rm := range rms {
+ err := rm.(*RouteMessage).Err
+ if err != nil {
+ t.Errorf("%v: %v", m, err)
+ }
+ }
+ ss, err := msgs(rms).validate()
+ if err != nil {
+ t.Fatalf("%v: %v", m, err)
+ }
+ for _, s := range ss {
+ t.Log(s)
+ }
+
+ }
+}
diff --git a/vendor/golang.org/x/net/route/route.go b/vendor/golang.org/x/net/route/route.go
index c986e29eb..081da0d5c 100644
--- a/vendor/golang.org/x/net/route/route.go
+++ b/vendor/golang.org/x/net/route/route.go
@@ -24,21 +24,70 @@ var (
errMessageTooShort = errors.New("message too short")
errInvalidMessage = errors.New("invalid message")
errInvalidAddr = errors.New("invalid address")
+ errShortBuffer = errors.New("short buffer")
)
// A RouteMessage represents a message conveying an address prefix, a
// nexthop address and an output interface.
+//
+// Unlike other messages, this message can be used to query adjacency
+// information for the given address prefix, to add a new route, and
+// to delete or modify the existing route from the routing information
+// base inside the kernel by writing and reading route messages on a
+// routing socket.
+//
+// For the manipulation of routing information, the route message must
+// contain appropriate fields that include:
+//
+// Version = <must be specified>
+// Type = <must be specified>
+// Flags = <must be specified>
+// Index = <must be specified if necessary>
+// ID = <must be specified>
+// Seq = <must be specified>
+// Addrs = <must be specified>
+//
+// The Type field specifies a type of manipulation, the Flags field
+// specifies a class of target information and the Addrs field
+// specifies target information like the following:
+//
+// route.RouteMessage{
+// Version: RTM_VERSION,
+// Type: RTM_GET,
+// Flags: RTF_UP | RTF_HOST,
+// ID: uintptr(os.Getpid()),
+// Seq: 1,
+// Addrs: []route.Addrs{
+// RTAX_DST: &route.Inet4Addr{ ... },
+// RTAX_IFP: &route.LinkAddr{ ... },
+// RTAX_BRD: &route.Inet4Addr{ ... },
+// },
+// }
+//
+// The values for the above fields depend on the implementation of
+// each operating system.
+//
+// The Err field on a response message contains an error value on the
+// requested operation. If non-nil, the requested operation is failed.
type RouteMessage struct {
- Version int // message version
- Type int // message type
- Flags int // route flags
- Index int // interface index when atatched
- Addrs []Addr // addresses
+ Version int // message version
+ Type int // message type
+ Flags int // route flags
+ Index int // interface index when atatched
+ ID uintptr // sender's identifier; usually process ID
+ Seq int // sequence number
+ Err error // error on requested operation
+ Addrs []Addr // addresses
extOff int // offset of header extension
raw []byte // raw message
}
+// Marshal returns the binary encoding of m.
+func (m *RouteMessage) Marshal() ([]byte, error) {
+ return m.marshal()
+}
+
// A RIBType reprensents a type of routing information base.
type RIBType int
diff --git a/vendor/golang.org/x/net/route/route_classic.go b/vendor/golang.org/x/net/route/route_classic.go
index d333c6aa5..61b2bb4ad 100644
--- a/vendor/golang.org/x/net/route/route_classic.go
+++ b/vendor/golang.org/x/net/route/route_classic.go
@@ -6,6 +6,36 @@
package route
+import "syscall"
+
+func (m *RouteMessage) marshal() ([]byte, error) {
+ w, ok := wireFormats[m.Type]
+ if !ok {
+ return nil, errUnsupportedMessage
+ }
+ l := w.bodyOff + addrsSpace(m.Addrs)
+ b := make([]byte, l)
+ nativeEndian.PutUint16(b[:2], uint16(l))
+ if m.Version == 0 {
+ b[2] = sysRTM_VERSION
+ } else {
+ b[2] = byte(m.Version)
+ }
+ b[3] = byte(m.Type)
+ nativeEndian.PutUint32(b[8:12], uint32(m.Flags))
+ nativeEndian.PutUint16(b[4:6], uint16(m.Index))
+ nativeEndian.PutUint32(b[16:20], uint32(m.ID))
+ nativeEndian.PutUint32(b[20:24], uint32(m.Seq))
+ attrs, err := marshalAddrs(b[w.bodyOff:], m.Addrs)
+ if err != nil {
+ return nil, err
+ }
+ if attrs > 0 {
+ nativeEndian.PutUint32(b[12:16], uint32(attrs))
+ }
+ return b, nil
+}
+
func (w *wireFormat) parseRouteMessage(typ RIBType, b []byte) (Message, error) {
if len(b) < w.bodyOff {
return nil, errMessageTooShort
@@ -19,9 +49,15 @@ func (w *wireFormat) parseRouteMessage(typ RIBType, b []byte) (Message, error) {
Type: int(b[3]),
Flags: int(nativeEndian.Uint32(b[8:12])),
Index: int(nativeEndian.Uint16(b[4:6])),
+ ID: uintptr(nativeEndian.Uint32(b[16:20])),
+ Seq: int(nativeEndian.Uint32(b[20:24])),
extOff: w.extOff,
raw: b[:l],
}
+ errno := syscall.Errno(nativeEndian.Uint32(b[28:32]))
+ if errno != 0 {
+ m.Err = errno
+ }
var err error
m.Addrs, err = parseAddrs(uint(nativeEndian.Uint32(b[12:16])), parseKernelInetAddr, b[w.bodyOff:])
if err != nil {
diff --git a/vendor/golang.org/x/net/route/route_openbsd.go b/vendor/golang.org/x/net/route/route_openbsd.go
index 76eae40d8..daf2e90c4 100644
--- a/vendor/golang.org/x/net/route/route_openbsd.go
+++ b/vendor/golang.org/x/net/route/route_openbsd.go
@@ -4,8 +4,35 @@
package route
+import "syscall"
+
+func (m *RouteMessage) marshal() ([]byte, error) {
+ l := sizeofRtMsghdr + addrsSpace(m.Addrs)
+ b := make([]byte, l)
+ nativeEndian.PutUint16(b[:2], uint16(l))
+ if m.Version == 0 {
+ b[2] = sysRTM_VERSION
+ } else {
+ b[2] = byte(m.Version)
+ }
+ b[3] = byte(m.Type)
+ nativeEndian.PutUint16(b[4:6], uint16(sizeofRtMsghdr))
+ nativeEndian.PutUint32(b[16:20], uint32(m.Flags))
+ nativeEndian.PutUint16(b[6:8], uint16(m.Index))
+ nativeEndian.PutUint32(b[24:28], uint32(m.ID))
+ nativeEndian.PutUint32(b[28:32], uint32(m.Seq))
+ attrs, err := marshalAddrs(b[sizeofRtMsghdr:], m.Addrs)
+ if err != nil {
+ return nil, err
+ }
+ if attrs > 0 {
+ nativeEndian.PutUint32(b[12:16], uint32(attrs))
+ }
+ return b, nil
+}
+
func (*wireFormat) parseRouteMessage(_ RIBType, b []byte) (Message, error) {
- if len(b) < 40 {
+ if len(b) < sizeofRtMsghdr {
return nil, errMessageTooShort
}
l := int(nativeEndian.Uint16(b[:2]))
@@ -17,12 +44,18 @@ func (*wireFormat) parseRouteMessage(_ RIBType, b []byte) (Message, error) {
Type: int(b[3]),
Flags: int(nativeEndian.Uint32(b[16:20])),
Index: int(nativeEndian.Uint16(b[6:8])),
+ ID: uintptr(nativeEndian.Uint32(b[24:28])),
+ Seq: int(nativeEndian.Uint32(b[28:32])),
raw: b[:l],
}
ll := int(nativeEndian.Uint16(b[4:6]))
if len(b) < ll {
return nil, errInvalidMessage
}
+ errno := syscall.Errno(nativeEndian.Uint32(b[32:36]))
+ if errno != 0 {
+ m.Err = errno
+ }
as, err := parseAddrs(uint(nativeEndian.Uint32(b[12:16])), parseKernelInetAddr, b[ll:])
if err != nil {
return nil, err
diff --git a/vendor/golang.org/x/net/route/sys.go b/vendor/golang.org/x/net/route/sys.go
index 80ca83ae1..3d0ee9b14 100644
--- a/vendor/golang.org/x/net/route/sys.go
+++ b/vendor/golang.org/x/net/route/sys.go
@@ -11,7 +11,7 @@ import "unsafe"
var (
nativeEndian binaryByteOrder
kernelAlign int
- parseFns map[int]parseFn
+ wireFormats map[int]*wireFormat
)
func init() {
@@ -22,7 +22,7 @@ func init() {
} else {
nativeEndian = bigEndian
}
- kernelAlign, parseFns = probeRoutingStack()
+ kernelAlign, wireFormats = probeRoutingStack()
}
func roundup(l int) int {
@@ -32,9 +32,8 @@ func roundup(l int) int {
return (l + kernelAlign - 1) & ^(kernelAlign - 1)
}
-type parseFn func(RIBType, []byte) (Message, error)
-
type wireFormat struct {
extOff int // offset of header extension
bodyOff int // offset of message body
+ parse func(RIBType, []byte) (Message, error)
}
diff --git a/vendor/golang.org/x/net/route/sys_darwin.go b/vendor/golang.org/x/net/route/sys_darwin.go
index fff3a0fd1..e742c919d 100644
--- a/vendor/golang.org/x/net/route/sys_darwin.go
+++ b/vendor/golang.org/x/net/route/sys_darwin.go
@@ -49,32 +49,39 @@ func (m *InterfaceMessage) Sys() []Sys {
}
}
-func probeRoutingStack() (int, map[int]parseFn) {
+func probeRoutingStack() (int, map[int]*wireFormat) {
rtm := &wireFormat{extOff: 36, bodyOff: sizeofRtMsghdrDarwin15}
+ rtm.parse = rtm.parseRouteMessage
rtm2 := &wireFormat{extOff: 36, bodyOff: sizeofRtMsghdr2Darwin15}
+ rtm2.parse = rtm2.parseRouteMessage
ifm := &wireFormat{extOff: 16, bodyOff: sizeofIfMsghdrDarwin15}
+ ifm.parse = ifm.parseInterfaceMessage
ifm2 := &wireFormat{extOff: 32, bodyOff: sizeofIfMsghdr2Darwin15}
+ ifm2.parse = ifm2.parseInterfaceMessage
ifam := &wireFormat{extOff: sizeofIfaMsghdrDarwin15, bodyOff: sizeofIfaMsghdrDarwin15}
+ ifam.parse = ifam.parseInterfaceAddrMessage
ifmam := &wireFormat{extOff: sizeofIfmaMsghdrDarwin15, bodyOff: sizeofIfmaMsghdrDarwin15}
+ ifmam.parse = ifmam.parseInterfaceMulticastAddrMessage
ifmam2 := &wireFormat{extOff: sizeofIfmaMsghdr2Darwin15, bodyOff: sizeofIfmaMsghdr2Darwin15}
+ ifmam2.parse = ifmam2.parseInterfaceMulticastAddrMessage
// Darwin kernels require 32-bit aligned access to routing facilities.
- return 4, map[int]parseFn{
- sysRTM_ADD: rtm.parseRouteMessage,
- sysRTM_DELETE: rtm.parseRouteMessage,
- sysRTM_CHANGE: rtm.parseRouteMessage,
- sysRTM_GET: rtm.parseRouteMessage,
- sysRTM_LOSING: rtm.parseRouteMessage,
- sysRTM_REDIRECT: rtm.parseRouteMessage,
- sysRTM_MISS: rtm.parseRouteMessage,
- sysRTM_LOCK: rtm.parseRouteMessage,
- sysRTM_RESOLVE: rtm.parseRouteMessage,
- sysRTM_NEWADDR: ifam.parseInterfaceAddrMessage,
- sysRTM_DELADDR: ifam.parseInterfaceAddrMessage,
- sysRTM_IFINFO: ifm.parseInterfaceMessage,
- sysRTM_NEWMADDR: ifmam.parseInterfaceMulticastAddrMessage,
- sysRTM_DELMADDR: ifmam.parseInterfaceMulticastAddrMessage,
- sysRTM_IFINFO2: ifm2.parseInterfaceMessage,
- sysRTM_NEWMADDR2: ifmam2.parseInterfaceMulticastAddrMessage,
- sysRTM_GET2: rtm2.parseRouteMessage,
+ return 4, map[int]*wireFormat{
+ sysRTM_ADD: rtm,
+ sysRTM_DELETE: rtm,
+ sysRTM_CHANGE: rtm,
+ sysRTM_GET: rtm,
+ sysRTM_LOSING: rtm,
+ sysRTM_REDIRECT: rtm,
+ sysRTM_MISS: rtm,
+ sysRTM_LOCK: rtm,
+ sysRTM_RESOLVE: rtm,
+ sysRTM_NEWADDR: ifam,
+ sysRTM_DELADDR: ifam,
+ sysRTM_IFINFO: ifm,
+ sysRTM_NEWMADDR: ifmam,
+ sysRTM_DELMADDR: ifmam,
+ sysRTM_IFINFO2: ifm2,
+ sysRTM_NEWMADDR2: ifmam2,
+ sysRTM_GET2: rtm2,
}
}
diff --git a/vendor/golang.org/x/net/route/sys_dragonfly.go b/vendor/golang.org/x/net/route/sys_dragonfly.go
index da848b3d0..b175cb18c 100644
--- a/vendor/golang.org/x/net/route/sys_dragonfly.go
+++ b/vendor/golang.org/x/net/route/sys_dragonfly.go
@@ -44,28 +44,33 @@ func (m *InterfaceMessage) Sys() []Sys {
}
}
-func probeRoutingStack() (int, map[int]parseFn) {
+func probeRoutingStack() (int, map[int]*wireFormat) {
var p uintptr
rtm := &wireFormat{extOff: 40, bodyOff: sizeofRtMsghdrDragonFlyBSD4}
+ rtm.parse = rtm.parseRouteMessage
ifm := &wireFormat{extOff: 16, bodyOff: sizeofIfMsghdrDragonFlyBSD4}
+ ifm.parse = ifm.parseInterfaceMessage
ifam := &wireFormat{extOff: sizeofIfaMsghdrDragonFlyBSD4, bodyOff: sizeofIfaMsghdrDragonFlyBSD4}
+ ifam.parse = ifam.parseInterfaceAddrMessage
ifmam := &wireFormat{extOff: sizeofIfmaMsghdrDragonFlyBSD4, bodyOff: sizeofIfmaMsghdrDragonFlyBSD4}
+ ifmam.parse = ifmam.parseInterfaceMulticastAddrMessage
ifanm := &wireFormat{extOff: sizeofIfAnnouncemsghdrDragonFlyBSD4, bodyOff: sizeofIfAnnouncemsghdrDragonFlyBSD4}
- return int(unsafe.Sizeof(p)), map[int]parseFn{
- sysRTM_ADD: rtm.parseRouteMessage,
- sysRTM_DELETE: rtm.parseRouteMessage,
- sysRTM_CHANGE: rtm.parseRouteMessage,
- sysRTM_GET: rtm.parseRouteMessage,
- sysRTM_LOSING: rtm.parseRouteMessage,
- sysRTM_REDIRECT: rtm.parseRouteMessage,
- sysRTM_MISS: rtm.parseRouteMessage,
- sysRTM_LOCK: rtm.parseRouteMessage,
- sysRTM_RESOLVE: rtm.parseRouteMessage,
- sysRTM_NEWADDR: ifam.parseInterfaceAddrMessage,
- sysRTM_DELADDR: ifam.parseInterfaceAddrMessage,
- sysRTM_IFINFO: ifm.parseInterfaceMessage,
- sysRTM_NEWMADDR: ifmam.parseInterfaceMulticastAddrMessage,
- sysRTM_DELMADDR: ifmam.parseInterfaceMulticastAddrMessage,
- sysRTM_IFANNOUNCE: ifanm.parseInterfaceAnnounceMessage,
+ ifanm.parse = ifanm.parseInterfaceAnnounceMessage
+ return int(unsafe.Sizeof(p)), map[int]*wireFormat{
+ sysRTM_ADD: rtm,
+ sysRTM_DELETE: rtm,
+ sysRTM_CHANGE: rtm,
+ sysRTM_GET: rtm,
+ sysRTM_LOSING: rtm,
+ sysRTM_REDIRECT: rtm,
+ sysRTM_MISS: rtm,
+ sysRTM_LOCK: rtm,
+ sysRTM_RESOLVE: rtm,
+ sysRTM_NEWADDR: ifam,
+ sysRTM_DELADDR: ifam,
+ sysRTM_IFINFO: ifm,
+ sysRTM_NEWMADDR: ifmam,
+ sysRTM_DELMADDR: ifmam,
+ sysRTM_IFANNOUNCE: ifanm,
}
}
diff --git a/vendor/golang.org/x/net/route/sys_freebsd.go b/vendor/golang.org/x/net/route/sys_freebsd.go
index 7b05c1a5a..010d4ae78 100644
--- a/vendor/golang.org/x/net/route/sys_freebsd.go
+++ b/vendor/golang.org/x/net/route/sys_freebsd.go
@@ -54,7 +54,7 @@ func (m *InterfaceMessage) Sys() []Sys {
}
}
-func probeRoutingStack() (int, map[int]parseFn) {
+func probeRoutingStack() (int, map[int]*wireFormat) {
var p uintptr
wordSize := int(unsafe.Sizeof(p))
align := int(unsafe.Sizeof(p))
@@ -130,21 +130,26 @@ func probeRoutingStack() (int, map[int]parseFn) {
ifm.bodyOff = sizeofIfMsghdrFreeBSD11
}
}
- return align, map[int]parseFn{
- sysRTM_ADD: rtm.parseRouteMessage,
- sysRTM_DELETE: rtm.parseRouteMessage,
- sysRTM_CHANGE: rtm.parseRouteMessage,
- sysRTM_GET: rtm.parseRouteMessage,
- sysRTM_LOSING: rtm.parseRouteMessage,
- sysRTM_REDIRECT: rtm.parseRouteMessage,
- sysRTM_MISS: rtm.parseRouteMessage,
- sysRTM_LOCK: rtm.parseRouteMessage,
- sysRTM_RESOLVE: rtm.parseRouteMessage,
- sysRTM_NEWADDR: ifam.parseInterfaceAddrMessage,
- sysRTM_DELADDR: ifam.parseInterfaceAddrMessage,
- sysRTM_IFINFO: ifm.parseInterfaceMessage,
- sysRTM_NEWMADDR: ifmam.parseInterfaceMulticastAddrMessage,
- sysRTM_DELMADDR: ifmam.parseInterfaceMulticastAddrMessage,
- sysRTM_IFANNOUNCE: ifanm.parseInterfaceAnnounceMessage,
+ rtm.parse = rtm.parseRouteMessage
+ ifm.parse = ifm.parseInterfaceMessage
+ ifam.parse = ifam.parseInterfaceAddrMessage
+ ifmam.parse = ifmam.parseInterfaceMulticastAddrMessage
+ ifanm.parse = ifanm.parseInterfaceAnnounceMessage
+ return align, map[int]*wireFormat{
+ sysRTM_ADD: rtm,
+ sysRTM_DELETE: rtm,
+ sysRTM_CHANGE: rtm,
+ sysRTM_GET: rtm,
+ sysRTM_LOSING: rtm,
+ sysRTM_REDIRECT: rtm,
+ sysRTM_MISS: rtm,
+ sysRTM_LOCK: rtm,
+ sysRTM_RESOLVE: rtm,
+ sysRTM_NEWADDR: ifam,
+ sysRTM_DELADDR: ifam,
+ sysRTM_IFINFO: ifm,
+ sysRTM_NEWMADDR: ifmam,
+ sysRTM_DELMADDR: ifmam,
+ sysRTM_IFANNOUNCE: ifanm,
}
}
diff --git a/vendor/golang.org/x/net/route/sys_netbsd.go b/vendor/golang.org/x/net/route/sys_netbsd.go
index 4d8076b51..b4e330140 100644
--- a/vendor/golang.org/x/net/route/sys_netbsd.go
+++ b/vendor/golang.org/x/net/route/sys_netbsd.go
@@ -42,26 +42,30 @@ func (m *InterfaceMessage) Sys() []Sys {
}
}
-func probeRoutingStack() (int, map[int]parseFn) {
+func probeRoutingStack() (int, map[int]*wireFormat) {
rtm := &wireFormat{extOff: 40, bodyOff: sizeofRtMsghdrNetBSD7}
+ rtm.parse = rtm.parseRouteMessage
ifm := &wireFormat{extOff: 16, bodyOff: sizeofIfMsghdrNetBSD7}
+ ifm.parse = ifm.parseInterfaceMessage
ifam := &wireFormat{extOff: sizeofIfaMsghdrNetBSD7, bodyOff: sizeofIfaMsghdrNetBSD7}
+ ifam.parse = ifam.parseInterfaceAddrMessage
ifanm := &wireFormat{extOff: sizeofIfAnnouncemsghdrNetBSD7, bodyOff: sizeofIfAnnouncemsghdrNetBSD7}
+ ifanm.parse = ifanm.parseInterfaceAnnounceMessage
// NetBSD 6 and above kernels require 64-bit aligned access to
// routing facilities.
- return 8, map[int]parseFn{
- sysRTM_ADD: rtm.parseRouteMessage,
- sysRTM_DELETE: rtm.parseRouteMessage,
- sysRTM_CHANGE: rtm.parseRouteMessage,
- sysRTM_GET: rtm.parseRouteMessage,
- sysRTM_LOSING: rtm.parseRouteMessage,
- sysRTM_REDIRECT: rtm.parseRouteMessage,
- sysRTM_MISS: rtm.parseRouteMessage,
- sysRTM_LOCK: rtm.parseRouteMessage,
- sysRTM_RESOLVE: rtm.parseRouteMessage,
- sysRTM_NEWADDR: ifam.parseInterfaceAddrMessage,
- sysRTM_DELADDR: ifam.parseInterfaceAddrMessage,
- sysRTM_IFANNOUNCE: ifanm.parseInterfaceAnnounceMessage,
- sysRTM_IFINFO: ifm.parseInterfaceMessage,
+ return 8, map[int]*wireFormat{
+ sysRTM_ADD: rtm,
+ sysRTM_DELETE: rtm,
+ sysRTM_CHANGE: rtm,
+ sysRTM_GET: rtm,
+ sysRTM_LOSING: rtm,
+ sysRTM_REDIRECT: rtm,
+ sysRTM_MISS: rtm,
+ sysRTM_LOCK: rtm,
+ sysRTM_RESOLVE: rtm,
+ sysRTM_NEWADDR: ifam,
+ sysRTM_DELADDR: ifam,
+ sysRTM_IFANNOUNCE: ifanm,
+ sysRTM_IFINFO: ifm,
}
}
diff --git a/vendor/golang.org/x/net/route/sys_openbsd.go b/vendor/golang.org/x/net/route/sys_openbsd.go
index 26d043869..8798dc4ca 100644
--- a/vendor/golang.org/x/net/route/sys_openbsd.go
+++ b/vendor/golang.org/x/net/route/sys_openbsd.go
@@ -51,22 +51,29 @@ func (m *InterfaceMessage) Sys() []Sys {
}
}
-func probeRoutingStack() (int, map[int]parseFn) {
+func probeRoutingStack() (int, map[int]*wireFormat) {
var p uintptr
- nooff := &wireFormat{extOff: -1, bodyOff: -1}
- return int(unsafe.Sizeof(p)), map[int]parseFn{
- sysRTM_ADD: nooff.parseRouteMessage,
- sysRTM_DELETE: nooff.parseRouteMessage,
- sysRTM_CHANGE: nooff.parseRouteMessage,
- sysRTM_GET: nooff.parseRouteMessage,
- sysRTM_LOSING: nooff.parseRouteMessage,
- sysRTM_REDIRECT: nooff.parseRouteMessage,
- sysRTM_MISS: nooff.parseRouteMessage,
- sysRTM_LOCK: nooff.parseRouteMessage,
- sysRTM_RESOLVE: nooff.parseRouteMessage,
- sysRTM_NEWADDR: nooff.parseInterfaceAddrMessage,
- sysRTM_DELADDR: nooff.parseInterfaceAddrMessage,
- sysRTM_IFINFO: nooff.parseInterfaceMessage,
- sysRTM_IFANNOUNCE: nooff.parseInterfaceAnnounceMessage,
+ rtm := &wireFormat{extOff: -1, bodyOff: -1}
+ rtm.parse = rtm.parseRouteMessage
+ ifm := &wireFormat{extOff: -1, bodyOff: -1}
+ ifm.parse = ifm.parseInterfaceMessage
+ ifam := &wireFormat{extOff: -1, bodyOff: -1}
+ ifam.parse = ifam.parseInterfaceAddrMessage
+ ifanm := &wireFormat{extOff: -1, bodyOff: -1}
+ ifanm.parse = ifanm.parseInterfaceAnnounceMessage
+ return int(unsafe.Sizeof(p)), map[int]*wireFormat{
+ sysRTM_ADD: rtm,
+ sysRTM_DELETE: rtm,
+ sysRTM_CHANGE: rtm,
+ sysRTM_GET: rtm,
+ sysRTM_LOSING: rtm,
+ sysRTM_REDIRECT: rtm,
+ sysRTM_MISS: rtm,
+ sysRTM_LOCK: rtm,
+ sysRTM_RESOLVE: rtm,
+ sysRTM_NEWADDR: ifam,
+ sysRTM_DELADDR: ifam,
+ sysRTM_IFINFO: ifm,
+ sysRTM_IFANNOUNCE: ifanm,
}
}
diff --git a/vendor/golang.org/x/net/route/syscall.go b/vendor/golang.org/x/net/route/syscall.go
index d136325a3..c211188b1 100644
--- a/vendor/golang.org/x/net/route/syscall.go
+++ b/vendor/golang.org/x/net/route/syscall.go
@@ -11,10 +11,6 @@ import (
"unsafe"
)
-// TODO: replace with runtime.KeepAlive when available
-//go:noescape
-func keepAlive(p unsafe.Pointer)
-
var zero uintptr
func sysctl(mib []int32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) error {
@@ -25,7 +21,6 @@ func sysctl(mib []int32, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
p = unsafe.Pointer(&zero)
}
_, _, errno := syscall.Syscall6(syscall.SYS___SYSCTL, uintptr(p), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- keepAlive(p)
if errno != 0 {
return error(errno)
}
diff --git a/vendor/golang.org/x/net/route/syscall.s b/vendor/golang.org/x/net/route/syscall.s
deleted file mode 100644
index fa6297f0a..000000000
--- a/vendor/golang.org/x/net/route/syscall.s
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2016 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.
-
-#include "textflag.h"
-
-TEXT ·keepAlive(SB),NOSPLIT,$0
- RET
diff --git a/vendor/golang.org/x/net/route/zsys_darwin.go b/vendor/golang.org/x/net/route/zsys_darwin.go
index 265b81cd5..4e2e1ab09 100644
--- a/vendor/golang.org/x/net/route/zsys_darwin.go
+++ b/vendor/golang.org/x/net/route/zsys_darwin.go
@@ -10,6 +10,8 @@ const (
sysAF_LINK = 0x12
sysAF_INET6 = 0x1e
+ sysSOCK_RAW = 0x3
+
sysNET_RT_DUMP = 0x1
sysNET_RT_FLAGS = 0x2
sysNET_RT_IFLIST = 0x3
@@ -90,4 +92,8 @@ const (
sizeofRtMsghdrDarwin15 = 0x5c
sizeofRtMsghdr2Darwin15 = 0x5c
sizeofRtMetricsDarwin15 = 0x38
+
+ sizeofSockaddrStorage = 0x80
+ sizeofSockaddrInet = 0x10
+ sizeofSockaddrInet6 = 0x1c
)
diff --git a/vendor/golang.org/x/net/route/zsys_dragonfly.go b/vendor/golang.org/x/net/route/zsys_dragonfly.go
index dd36dece0..719c88d11 100644
--- a/vendor/golang.org/x/net/route/zsys_dragonfly.go
+++ b/vendor/golang.org/x/net/route/zsys_dragonfly.go
@@ -10,6 +10,8 @@ const (
sysAF_LINK = 0x12
sysAF_INET6 = 0x1c
+ sysSOCK_RAW = 0x3
+
sysNET_RT_DUMP = 0x1
sysNET_RT_FLAGS = 0x2
sysNET_RT_IFLIST = 0x3
@@ -89,4 +91,8 @@ const (
sizeofRtMsghdrDragonFlyBSD4 = 0x98
sizeofRtMetricsDragonFlyBSD4 = 0x70
+
+ sizeofSockaddrStorage = 0x80
+ sizeofSockaddrInet = 0x10
+ sizeofSockaddrInet6 = 0x1c
)
diff --git a/vendor/golang.org/x/net/route/zsys_freebsd_386.go b/vendor/golang.org/x/net/route/zsys_freebsd_386.go
index 9bac2e390..b03bc01f6 100644
--- a/vendor/golang.org/x/net/route/zsys_freebsd_386.go
+++ b/vendor/golang.org/x/net/route/zsys_freebsd_386.go
@@ -10,6 +10,8 @@ const (
sysAF_LINK = 0x12
sysAF_INET6 = 0x1c
+ sysSOCK_RAW = 0x3
+
sysNET_RT_DUMP = 0x1
sysNET_RT_FLAGS = 0x2
sysNET_RT_IFLIST = 0x3
@@ -117,4 +119,8 @@ const (
sizeofIfDataFreeBSD9Emu = 0x98
sizeofIfDataFreeBSD10Emu = 0x98
sizeofIfDataFreeBSD11Emu = 0x98
+
+ sizeofSockaddrStorage = 0x80
+ sizeofSockaddrInet = 0x10
+ sizeofSockaddrInet6 = 0x1c
)
diff --git a/vendor/golang.org/x/net/route/zsys_freebsd_amd64.go b/vendor/golang.org/x/net/route/zsys_freebsd_amd64.go
index b1920d7ac..0b675b3d3 100644
--- a/vendor/golang.org/x/net/route/zsys_freebsd_amd64.go
+++ b/vendor/golang.org/x/net/route/zsys_freebsd_amd64.go
@@ -10,6 +10,8 @@ const (
sysAF_LINK = 0x12
sysAF_INET6 = 0x1c
+ sysSOCK_RAW = 0x3
+
sysNET_RT_DUMP = 0x1
sysNET_RT_FLAGS = 0x2
sysNET_RT_IFLIST = 0x3
@@ -114,4 +116,8 @@ const (
sizeofIfDataFreeBSD9Emu = 0x98
sizeofIfDataFreeBSD10Emu = 0x98
sizeofIfDataFreeBSD11Emu = 0x98
+
+ sizeofSockaddrStorage = 0x80
+ sizeofSockaddrInet = 0x10
+ sizeofSockaddrInet6 = 0x1c
)
diff --git a/vendor/golang.org/x/net/route/zsys_freebsd_arm.go b/vendor/golang.org/x/net/route/zsys_freebsd_arm.go
index a034d6fcb..58f8ea16f 100644
--- a/vendor/golang.org/x/net/route/zsys_freebsd_arm.go
+++ b/vendor/golang.org/x/net/route/zsys_freebsd_arm.go
@@ -10,6 +10,8 @@ const (
sysAF_LINK = 0x12
sysAF_INET6 = 0x1c
+ sysSOCK_RAW = 0x3
+
sysNET_RT_DUMP = 0x1
sysNET_RT_FLAGS = 0x2
sysNET_RT_IFLIST = 0x3
@@ -114,4 +116,8 @@ const (
sizeofIfDataFreeBSD9Emu = 0x60
sizeofIfDataFreeBSD10Emu = 0x60
sizeofIfDataFreeBSD11Emu = 0x98
+
+ sizeofSockaddrStorage = 0x80
+ sizeofSockaddrInet = 0x10
+ sizeofSockaddrInet6 = 0x1c
)
diff --git a/vendor/golang.org/x/net/route/zsys_netbsd.go b/vendor/golang.org/x/net/route/zsys_netbsd.go
index aa4aad161..e0df45e8b 100644
--- a/vendor/golang.org/x/net/route/zsys_netbsd.go
+++ b/vendor/golang.org/x/net/route/zsys_netbsd.go
@@ -10,6 +10,8 @@ const (
sysAF_LINK = 0x12
sysAF_INET6 = 0x18
+ sysSOCK_RAW = 0x3
+
sysNET_RT_DUMP = 0x1
sysNET_RT_FLAGS = 0x2
sysNET_RT_IFLIST = 0x5
@@ -88,4 +90,8 @@ const (
sizeofRtMsghdrNetBSD7 = 0x78
sizeofRtMetricsNetBSD7 = 0x50
+
+ sizeofSockaddrStorage = 0x80
+ sizeofSockaddrInet = 0x10
+ sizeofSockaddrInet6 = 0x1c
)
diff --git a/vendor/golang.org/x/net/route/zsys_openbsd.go b/vendor/golang.org/x/net/route/zsys_openbsd.go
index 4fadc4e8f..f5a1ff967 100644
--- a/vendor/golang.org/x/net/route/zsys_openbsd.go
+++ b/vendor/golang.org/x/net/route/zsys_openbsd.go
@@ -10,6 +10,8 @@ const (
sysAF_LINK = 0x12
sysAF_INET6 = 0x18
+ sysSOCK_RAW = 0x3
+
sysNET_RT_DUMP = 0x1
sysNET_RT_FLAGS = 0x2
sysNET_RT_IFLIST = 0x3
@@ -78,3 +80,11 @@ const (
sysRTAX_LABEL = 0xa
sysRTAX_MAX = 0xb
)
+
+const (
+ sizeofRtMsghdr = 0x60
+
+ sizeofSockaddrStorage = 0x100
+ sizeofSockaddrInet = 0x10
+ sizeofSockaddrInet6 = 0x1c
+)
diff --git a/vendor/golang.org/x/net/webdav/internal/xml/marshal.go b/vendor/golang.org/x/net/webdav/internal/xml/marshal.go
index 3c3b6aca5..cb82ec214 100644
--- a/vendor/golang.org/x/net/webdav/internal/xml/marshal.go
+++ b/vendor/golang.org/x/net/webdav/internal/xml/marshal.go
@@ -26,9 +26,9 @@ const (
//
// Marshal handles an array or slice by marshalling each of the elements.
// Marshal handles a pointer by marshalling the value it points at or, if the
-// pointer is nil, by writing nothing. Marshal handles an interface value by
+// pointer is nil, by writing nothing. Marshal handles an interface value by
// marshalling the value it contains or, if the interface value is nil, by
-// writing nothing. Marshal handles all other data by writing one or more XML
+// writing nothing. Marshal handles all other data by writing one or more XML
// elements containing the data.
//
// The name for the XML elements is taken from, in order of preference:
@@ -61,7 +61,7 @@ const (
// value were part of the outer struct.
//
// If a field uses a tag "a>b>c", then the element c will be nested inside
-// parent elements a and b. Fields that appear next to each other that name
+// parent elements a and b. Fields that appear next to each other that name
// the same parent will be enclosed in one XML element.
//
// See MarshalIndent for an example.
@@ -222,7 +222,7 @@ func (enc *Encoder) EncodeToken(t Token) error {
return p.cachedWriteError()
case ProcInst:
// First token to be encoded which is also a ProcInst with target of xml
- // is the xml declaration. The only ProcInst where target of xml is allowed.
+ // is the xml declaration. The only ProcInst where target of xml is allowed.
if t.Target == "xml" && p.Buffered() != 0 {
return fmt.Errorf("xml: EncodeToken of ProcInst xml target only valid for xml declaration, first token encoded")
}
diff --git a/vendor/golang.org/x/net/webdav/internal/xml/read.go b/vendor/golang.org/x/net/webdav/internal/xml/read.go
index 3ece08c49..4089056a1 100644
--- a/vendor/golang.org/x/net/webdav/internal/xml/read.go
+++ b/vendor/golang.org/x/net/webdav/internal/xml/read.go
@@ -27,7 +27,7 @@ import (
// discarded.
//
// Because Unmarshal uses the reflect package, it can only assign
-// to exported (upper case) fields. Unmarshal uses a case-sensitive
+// to exported (upper case) fields. Unmarshal uses a case-sensitive
// comparison to match XML element names to tag values and struct
// field names.
//
@@ -37,7 +37,7 @@ import (
//
// * If the struct has a field of type []byte or string with tag
// ",innerxml", Unmarshal accumulates the raw XML nested inside the
-// element in that field. The rest of the rules still apply.
+// element in that field. The rest of the rules still apply.
//
// * If the struct has a field named XMLName of type xml.Name,
// Unmarshal records the element name in that field.
@@ -59,7 +59,7 @@ import (
//
// * If the XML element contains comments, they are accumulated in
// the first struct field that has tag ",comment". The struct
-// field may have type []byte or string. If there is no such
+// field may have type []byte or string. If there is no such
// field, the comments are discarded.
//
// * If the XML element contains a sub-element whose name matches
@@ -102,7 +102,7 @@ import (
//
// Unmarshal maps an XML element or attribute value to an integer or
// floating-point field by setting the field to the result of
-// interpreting the string value in decimal. There is no check for
+// interpreting the string value in decimal. There is no check for
// overflow.
//
// Unmarshal maps an XML element to an xml.Name by recording the
diff --git a/vendor/golang.org/x/net/webdav/internal/xml/xml.go b/vendor/golang.org/x/net/webdav/internal/xml/xml.go
index ffab4a70c..5b79cbecb 100644
--- a/vendor/golang.org/x/net/webdav/internal/xml/xml.go
+++ b/vendor/golang.org/x/net/webdav/internal/xml/xml.go
@@ -252,7 +252,7 @@ func NewDecoder(r io.Reader) *Decoder {
//
// Slices of bytes in the returned token data refer to the
// parser's internal buffer and remain valid only until the next
-// call to Token. To acquire a copy of the bytes, call CopyToken
+// call to Token. To acquire a copy of the bytes, call CopyToken
// or the token's Copy method.
//
// Token expands self-closing elements such as <br/>
@@ -360,7 +360,7 @@ func (d *Decoder) switchToReader(r io.Reader) {
}
// Parsing state - stack holds old name space translations
-// and the current set of open elements. The translations to pop when
+// and the current set of open elements. The translations to pop when
// ending a given tag are *below* it on the stack, which is
// more work but forced on us by XML.
type stack struct {
@@ -1253,7 +1253,7 @@ func isNameString(s string) bool {
// These tables were generated by cut and paste from Appendix B of
// the XML spec at http://www.xml.com/axml/testaxml.htm
-// and then reformatting. First corresponds to (Letter | '_' | ':')
+// and then reformatting. First corresponds to (Letter | '_' | ':')
// and second corresponds to NameChar.
var first = &unicode.RangeTable{
diff --git a/vendor/golang.org/x/sys/unix/asm.s b/vendor/golang.org/x/sys/unix/asm.s
deleted file mode 100644
index 8ed2fdb94..000000000
--- a/vendor/golang.org/x/sys/unix/asm.s
+++ /dev/null
@@ -1,10 +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.
-
-// +build !gccgo
-
-#include "textflag.h"
-
-TEXT ·use(SB),NOSPLIT,$0
- RET
diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh
index 2a1473f16..c1fc2adb8 100755
--- a/vendor/golang.org/x/sys/unix/mkall.sh
+++ b/vendor/golang.org/x/sys/unix/mkall.sh
@@ -89,6 +89,8 @@ case "$1" in
-syscalls)
for i in zsyscall*go
do
+ # Run the command line that appears in the first line
+ # of the generated file to regenerate it.
sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i
rm _$i
done
@@ -280,7 +282,7 @@ esac
syscall_goos="syscall_bsd.go $syscall_goos"
;;
esac
- if [ -n "$mksyscall" ]; then echo "$mksyscall $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; fi
+ if [ -n "$mksyscall" ]; then echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; fi
;;
esac
if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi
diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh
index 7e6276b9c..8da63576a 100755
--- a/vendor/golang.org/x/sys/unix/mkerrors.sh
+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh
@@ -114,13 +114,16 @@ includes_Linux='
#include <sys/time.h>
#include <sys/socket.h>
#include <linux/if.h>
+#include <linux/if_alg.h>
#include <linux/if_arp.h>
#include <linux/if_ether.h>
#include <linux/if_tun.h>
#include <linux/if_packet.h>
#include <linux/if_addr.h>
+#include <linux/falloc.h>
#include <linux/filter.h>
#include <linux/netlink.h>
+#include <linux/random.h>
#include <linux/reboot.h>
#include <linux/rtnetlink.h>
#include <linux/ptrace.h>
@@ -129,6 +132,7 @@ includes_Linux='
#include <linux/icmpv6.h>
#include <linux/serial.h>
#include <linux/can.h>
+#include <linux/vm_sockets.h>
#include <net/route.h>
#include <asm/termbits.h>
@@ -144,6 +148,10 @@ includes_Linux='
#define PTRACE_SETREGS 0xd
#endif
+#ifndef SOL_NETLINK
+#define SOL_NETLINK 270
+#endif
+
#ifdef SOL_BLUETOOTH
// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h
// but it is already in bluetooth_linux.go
@@ -312,6 +320,7 @@ ccflags="$@"
$2 ~ /^IN_/ ||
$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||
$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||
+ $2 ~ /^FALLOC_/ ||
$2 == "ICMPV6_FILTER" ||
$2 == "SOMAXCONN" ||
$2 == "NAME_MAX" ||
@@ -341,8 +350,13 @@ ccflags="$@"
$2 ~ /^(BPF|DLT)_/ ||
$2 ~ /^CLOCK_/ ||
$2 ~ /^CAN_/ ||
+ $2 ~ /^ALG_/ ||
+ $2 ~ /^GRND_/ ||
+ $2 ~ /^SPLICE_/ ||
+ $2 ~ /^(VM|VMADDR)_/ ||
$2 !~ "WMESGLEN" &&
- $2 ~ /^W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", $2, $2)}
+ $2 ~ /^W[A-Z0-9]+$/ ||
+ $2 ~ /^BLK/ {printf("\t%s = C.%s\n", $2, $2)}
$2 ~ /^__WCOREFLAG$/ {next}
$2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)}
@@ -456,7 +470,7 @@ main(void)
printf("\t%d: \"%s\",\n", e, buf);
}
printf("}\n\n");
-
+
printf("\n\n// Signal table\n");
printf("var signals = [...]string {\n");
qsort(signals, nelem(signals), sizeof signals[0], intcmp);
diff --git a/vendor/golang.org/x/sys/unix/mksyscall.pl b/vendor/golang.org/x/sys/unix/mksyscall.pl
index b1e7766da..34f8ef829 100755
--- a/vendor/golang.org/x/sys/unix/mksyscall.pl
+++ b/vendor/golang.org/x/sys/unix/mksyscall.pl
@@ -29,6 +29,7 @@ my $openbsd = 0;
my $netbsd = 0;
my $dragonfly = 0;
my $arm = 0; # 64-bit value should use (even, odd)-pair
+my $tags = ""; # build tags
if($ARGV[0] eq "-b32") {
$_32bit = "big-endian";
@@ -57,14 +58,14 @@ if($ARGV[0] eq "-arm") {
$arm = 1;
shift;
}
-
-if($ARGV[0] =~ /^-/) {
- print STDERR "usage: mksyscall.pl [-b32 | -l32] [file ...]\n";
- exit 1;
+if($ARGV[0] eq "-tags") {
+ shift;
+ $tags = $ARGV[0];
+ shift;
}
-if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
- print STDERR "GOARCH or GOOS not defined in environment\n";
+if($ARGV[0] =~ /^-/) {
+ print STDERR "usage: mksyscall.pl [-b32 | -l32] [-tags x,y] [file ...]\n";
exit 1;
}
@@ -132,7 +133,6 @@ while(<>) {
# Prepare arguments to Syscall.
my @args = ();
- my @uses = ();
my $n = 0;
foreach my $p (@in) {
my ($name, $type) = parseparam($p);
@@ -143,14 +143,12 @@ while(<>) {
$text .= "\t_p$n, $errvar = BytePtrFromString($name)\n";
$text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n";
push @args, "uintptr(unsafe.Pointer(_p$n))";
- push @uses, "use(unsafe.Pointer(_p$n))";
$n++;
} elsif($type eq "string") {
print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n";
$text .= "\tvar _p$n *byte\n";
$text .= "\t_p$n, _ = BytePtrFromString($name)\n";
push @args, "uintptr(unsafe.Pointer(_p$n))";
- push @uses, "use(unsafe.Pointer(_p$n))";
$n++;
} elsif($type =~ /^\[\](.*)/) {
# Convert slice into pointer, length.
@@ -185,7 +183,7 @@ while(<>) {
}
} elsif($type eq "int64" && $_32bit ne "") {
if(@args % 2 && $arm) {
- # arm abi specifies 64-bit argument uses
+ # arm abi specifies 64-bit argument uses
# (even, odd) pair
push @args, "0"
}
@@ -278,11 +276,8 @@ while(<>) {
} else {
$text .= "\t$ret[0], $ret[1], $ret[2] := $call\n";
}
- foreach my $use (@uses) {
- $text .= "\t$use\n";
- }
$text .= $body;
-
+
if ($plan9 && $ret[2] eq "e1") {
$text .= "\tif int32(r0) == -1 {\n";
$text .= "\t\terr = e1\n";
@@ -307,7 +302,7 @@ print <<EOF;
// $cmdline
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+// +build $tags
package unix
diff --git a/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl b/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl
index 06bade768..939c8a791 100755
--- a/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl
+++ b/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl
@@ -12,7 +12,7 @@
# * The parameter lists must give a type for each argument:
# the (x, y, z int) shorthand is not allowed.
# * If the return parameter is an error number, it must be named err.
-# * If go func name needs to be different than its libc name,
+# * If go func name needs to be different than its libc name,
# * or the function is not in libc, name could be specified
# * at the end, after "=" sign, like
# //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
@@ -22,6 +22,7 @@ use strict;
my $cmdline = "mksyscall_solaris.pl " . join(' ', @ARGV);
my $errors = 0;
my $_32bit = "";
+my $tags = ""; # build tags
binmode STDOUT;
@@ -32,14 +33,14 @@ if($ARGV[0] eq "-b32") {
$_32bit = "little-endian";
shift;
}
-
-if($ARGV[0] =~ /^-/) {
- print STDERR "usage: mksyscall_solaris.pl [-b32 | -l32] [file ...]\n";
- exit 1;
+if($ARGV[0] eq "-tags") {
+ shift;
+ $tags = $ARGV[0];
+ shift;
}
-if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
- print STDERR "GOARCH or GOOS not defined in environment\n";
+if($ARGV[0] =~ /^-/) {
+ print STDERR "usage: mksyscall_solaris.pl [-b32 | -l32] [-tags x,y] [file ...]\n";
exit 1;
}
@@ -138,7 +139,6 @@ while(<>) {
# Prepare arguments to Syscall.
my @args = ();
- my @uses = ();
my $n = 0;
foreach my $p (@in) {
my ($name, $type) = parseparam($p);
@@ -149,14 +149,12 @@ while(<>) {
$text .= "\t_p$n, $errvar = $strconvfunc($name)\n";
$text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n";
push @args, "uintptr(unsafe.Pointer(_p$n))";
- push @uses, "use(unsafe.Pointer(_p$n))";
$n++;
} elsif($type eq "string") {
print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n";
$text .= "\tvar _p$n $strconvtype\n";
$text .= "\t_p$n, _ = $strconvfunc($name)\n";
push @args, "uintptr(unsafe.Pointer(_p$n))";
- push @uses, "use(unsafe.Pointer(_p$n))";
$n++;
} elsif($type =~ /^\[\](.*)/) {
# Convert slice into pointer, length.
@@ -243,9 +241,6 @@ while(<>) {
} else {
$text .= "\t$ret[0], $ret[1], $ret[2] := $call\n";
}
- foreach my $use (@uses) {
- $text .= "\t$use\n";
- }
$text .= $body;
if ($do_errno) {
@@ -265,7 +260,7 @@ print <<EOF;
// $cmdline
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+// +build $tags
package $package
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_linux.pl b/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
index 52b16139e..872ae8c52 100755
--- a/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
+++ b/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
@@ -38,15 +38,22 @@ sub fmt {
}
my $prev;
-open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc";
+open(GCC, "gcc -E -dD @ARGV |") || die "can't run gcc";
while(<GCC>){
if(/^#define __NR_Linux\s+([0-9]+)/){
# mips/mips64: extract offset
$offset = $1;
}
+ elsif(/^#define __NR(\w*)_SYSCALL_BASE\s+([0-9]+)/){
+ # arm: extract offset
+ $offset = $1;
+ }
elsif(/^#define __NR_syscalls\s+/) {
# ignore redefinitions of __NR_syscalls
}
+ elsif(/^#define __NR_(\w*)Linux_syscalls\s+/) {
+ # mips/mips64: ignore definitions about the number of syscalls
+ }
elsif(/^#define __NR_(\w+)\s+([0-9]+)/){
$prev = $2;
fmt($1, $2);
@@ -61,6 +68,9 @@ while(<GCC>){
elsif(/^#define __NR_(\w+)\s+\(__NR_Linux \+ ([0-9]+)/){
fmt($1, $2);
}
+ elsif(/^#define __NR_(\w+)\s+\(__NR_SYSCALL_BASE \+ ([0-9]+)/){
+ fmt($1, $2);
+ }
}
print <<EOF;
diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go
index a0bcf842c..85e35020e 100644
--- a/vendor/golang.org/x/sys/unix/syscall.go
+++ b/vendor/golang.org/x/sys/unix/syscall.go
@@ -21,8 +21,6 @@
// holds a value of type syscall.Errno.
package unix // import "golang.org/x/sys/unix"
-import "unsafe"
-
// ByteSliceFromString returns a NUL-terminated slice of bytes
// containing the text of s. If s contains a NUL byte at any
// location, it returns (nil, EINVAL).
@@ -69,8 +67,3 @@ func (tv *Timeval) Nano() int64 {
}
func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
-
-// use is a no-op, but the compiler cannot see that it is.
-// Calling use(p) ensures that p is kept live until that point.
-//go:noescape
-func use(p unsafe.Pointer)
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go
index 3d534d2da..0d1771c3f 100644
--- a/vendor/golang.org/x/sys/unix/syscall_darwin.go
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go
@@ -144,7 +144,6 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
uintptr(options),
0,
)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
return nil, e1
}
@@ -197,7 +196,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
}
r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(_p0), bufsize, uintptr(flags))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = e1
diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
index ec408ee78..fbbe0dce2 100644
--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
@@ -109,7 +109,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
}
r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = e1
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
index 520ccbeaf..ec56ed608 100644
--- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
@@ -129,7 +129,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
}
r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = e1
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go
index 01c569ad5..1ff45e9f6 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go
@@ -452,6 +452,127 @@ func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) {
return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil
}
+// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets.
+// SockaddrALG enables userspace access to the Linux kernel's cryptography
+// subsystem. The Type and Name fields specify which type of hash or cipher
+// should be used with a given socket.
+//
+// To create a file descriptor that provides access to a hash or cipher, both
+// Bind and Accept must be used. Once the setup process is complete, input
+// data can be written to the socket, processed by the kernel, and then read
+// back as hash output or ciphertext.
+//
+// Here is an example of using an AF_ALG socket with SHA1 hashing.
+// The initial socket setup process is as follows:
+//
+// // Open a socket to perform SHA1 hashing.
+// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0)
+// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"}
+// unix.Bind(fd, addr)
+// // Note: unix.Accept does not work at this time; must invoke accept()
+// // manually using unix.Syscall.
+// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0)
+//
+// Once a file descriptor has been returned from Accept, it may be used to
+// perform SHA1 hashing. The descriptor is not safe for concurrent use, but
+// may be re-used repeatedly with subsequent Write and Read operations.
+//
+// When hashing a small byte slice or string, a single Write and Read may
+// be used:
+//
+// // Assume hashfd is already configured using the setup process.
+// hash := os.NewFile(hashfd, "sha1")
+// // Hash an input string and read the results. Each Write discards
+// // previous hash state. Read always reads the current state.
+// b := make([]byte, 20)
+// for i := 0; i < 2; i++ {
+// io.WriteString(hash, "Hello, world.")
+// hash.Read(b)
+// fmt.Println(hex.EncodeToString(b))
+// }
+// // Output:
+// // 2ae01472317d1935a84797ec1983ae243fc6aa28
+// // 2ae01472317d1935a84797ec1983ae243fc6aa28
+//
+// For hashing larger byte slices, or byte streams such as those read from
+// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update
+// the hash digest instead of creating a new one for a given chunk and finalizing it.
+//
+// // Assume hashfd and addr are already configured using the setup process.
+// hash := os.NewFile(hashfd, "sha1")
+// // Hash the contents of a file.
+// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz")
+// b := make([]byte, 4096)
+// for {
+// n, err := f.Read(b)
+// if err == io.EOF {
+// break
+// }
+// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr)
+// }
+// hash.Read(b)
+// fmt.Println(hex.EncodeToString(b))
+// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5
+//
+// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html.
+type SockaddrALG struct {
+ Type string
+ Name string
+ Feature uint32
+ Mask uint32
+ raw RawSockaddrALG
+}
+
+func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ // Leave room for NUL byte terminator.
+ if len(sa.Type) > 13 {
+ return nil, 0, EINVAL
+ }
+ if len(sa.Name) > 63 {
+ return nil, 0, EINVAL
+ }
+
+ sa.raw.Family = AF_ALG
+ sa.raw.Feat = sa.Feature
+ sa.raw.Mask = sa.Mask
+
+ typ, err := ByteSliceFromString(sa.Type)
+ if err != nil {
+ return nil, 0, err
+ }
+ name, err := ByteSliceFromString(sa.Name)
+ if err != nil {
+ return nil, 0, err
+ }
+
+ copy(sa.raw.Type[:], typ)
+ copy(sa.raw.Name[:], name)
+
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil
+}
+
+// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.
+// SockaddrVM provides access to Linux VM sockets: a mechanism that enables
+// bidirectional communication between a hypervisor and its guest virtual
+// machines.
+type SockaddrVM struct {
+ // CID and Port specify a context ID and port address for a VM socket.
+ // Guests have a unique CID, and hosts may have a well-known CID of:
+ // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.
+ // - VMADDR_CID_HOST: refers to other processes on the host.
+ CID uint32
+ Port uint32
+ raw RawSockaddrVM
+}
+
+func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ sa.raw.Family = AF_VSOCK
+ sa.raw.Port = sa.Port
+ sa.raw.Cid = sa.CID
+
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil
+}
+
func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
switch rsa.Addr.Family {
case AF_NETLINK:
@@ -521,6 +642,14 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
sa.Addr[i] = pp.Addr[i]
}
return sa, nil
+
+ case AF_VSOCK:
+ pp := (*RawSockaddrVM)(unsafe.Pointer(rsa))
+ sa := &SockaddrVM{
+ CID: pp.Cid,
+ Port: pp.Port,
+ }
+ return sa, nil
}
return nil, EAFNOSUPPORT
}
@@ -939,6 +1068,7 @@ func Getpgrp() (pid int) {
//sysnb Getpid() (pid int)
//sysnb Getppid() (ppid int)
//sys Getpriority(which int, who int) (prio int, err error)
+//sys Getrandom(buf []byte, flags int) (n int, err error)
//sysnb Getrusage(who int, rusage *Rusage) (err error)
//sysnb Getsid(pid int) (sid int, err error)
//sysnb Gettid() (tid int)
@@ -1019,6 +1149,25 @@ func Munmap(b []byte) (err error) {
//sys Mlockall(flags int) (err error)
//sys Munlockall() (err error)
+// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd,
+// using the specified flags.
+func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ n, _, errno := Syscall6(
+ SYS_VMSPLICE,
+ uintptr(fd),
+ uintptr(unsafe.Pointer(&iovs[0])),
+ uintptr(len(iovs)),
+ uintptr(flags),
+ 0,
+ 0,
+ )
+ if errno != 0 {
+ return 0, syscall.Errno(errno)
+ }
+
+ return int(n), nil
+}
+
/*
* Unimplemented
*/
@@ -1146,7 +1295,6 @@ func Munmap(b []byte) (err error) {
// Utimensat
// Vfork
// Vhangup
-// Vmsplice
// Vserver
// Waitid
// _Sysctl
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
index 5ed801369..be77d24a4 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
@@ -73,7 +73,6 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
func Fstatfs(fd int, buf *Statfs_t) (err error) {
_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
- use(unsafe.Pointer(buf))
if e != 0 {
err = errnoErr(e)
}
@@ -86,7 +85,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return err
}
_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
- use(unsafe.Pointer(p))
if e != 0 {
err = errnoErr(e)
}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
index 81c5f4732..1708a4bbf 100644
--- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
@@ -132,7 +132,6 @@ func (cmsg *Cmsghdr) SetLen(length int) {
func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}
r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)
- use(unsafe.Pointer(&mmap_args[0]))
xaddr = uintptr(r0)
if e1 != 0 {
err = errnoErr(e1)
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
index 554a82342..246131d2a 100644
--- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
@@ -111,7 +111,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
}
r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = e1
diff --git a/vendor/golang.org/x/sys/unix/types_linux.go b/vendor/golang.org/x/sys/unix/types_linux.go
index f3d8f90ee..ae79779ed 100644
--- a/vendor/golang.org/x/sys/unix/types_linux.go
+++ b/vendor/golang.org/x/sys/unix/types_linux.go
@@ -59,6 +59,8 @@ package unix
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <linux/can.h>
+#include <linux/if_alg.h>
+#include <linux/vm_sockets.h>
#ifdef TCSETS2
// On systems that have "struct termios2" use this as type Termios.
@@ -221,6 +223,10 @@ type RawSockaddrHCI C.struct_sockaddr_hci
type RawSockaddrCAN C.struct_sockaddr_can
+type RawSockaddrALG C.struct_sockaddr_alg
+
+type RawSockaddrVM C.struct_sockaddr_vm
+
type RawSockaddr C.struct_sockaddr
type RawSockaddrAny C.struct_sockaddr_any
@@ -262,6 +268,8 @@ const (
SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl
SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci
SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can
+ SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg
+ SizeofSockaddrVM = C.sizeof_struct_sockaddr_vm
SizeofLinger = C.sizeof_struct_linger
SizeofIPMreq = C.sizeof_struct_ip_mreq
SizeofIPMreqn = C.sizeof_struct_ip_mreqn
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 b40d0299b..2d02caf0e 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
@@ -51,8 +51,16 @@ const (
AF_TIPC = 0x1e
AF_UNIX = 0x1
AF_UNSPEC = 0x0
+ AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
ARPHRD_ARCNET = 0x7
@@ -145,6 +153,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80041270
+ BLKBSZSET = 0x40041271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80041272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1000
BPF_A = 0x10
BPF_ABS = 0x20
@@ -385,6 +408,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -424,6 +453,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
IBSHIFT = 0x10
ICANON = 0x2
@@ -808,6 +839,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_DUMP_INTR = 0x10
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
@@ -1247,6 +1279,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0x1
@@ -1292,6 +1325,17 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1464,6 +1508,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6
VQUIT = 0x1
VREPRINT = 0xc
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 9f0600ccb..f21dcd9dc 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
@@ -51,8 +51,16 @@ const (
AF_TIPC = 0x1e
AF_UNIX = 0x1
AF_UNSPEC = 0x0
+ AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
ARPHRD_ARCNET = 0x7
@@ -145,6 +153,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1000
BPF_A = 0x10
BPF_ABS = 0x20
@@ -385,6 +408,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -424,6 +453,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
IBSHIFT = 0x10
ICANON = 0x2
@@ -766,6 +797,7 @@ const (
NETLINK_ADD_MEMBERSHIP = 0x1
NETLINK_AUDIT = 0x9
NETLINK_BROADCAST_ERROR = 0x4
+ NETLINK_CAP_ACK = 0xa
NETLINK_CONNECTOR = 0xb
NETLINK_CRYPTO = 0x15
NETLINK_DNRTMSG = 0xe
@@ -778,14 +810,19 @@ const (
NETLINK_IP6_FW = 0xd
NETLINK_ISCSI = 0x8
NETLINK_KOBJECT_UEVENT = 0xf
+ NETLINK_LISTEN_ALL_NSID = 0x8
+ NETLINK_LIST_MEMBERSHIPS = 0x9
NETLINK_NETFILTER = 0xc
NETLINK_NFLOG = 0x5
NETLINK_NO_ENOBUFS = 0x5
NETLINK_PKTINFO = 0x3
NETLINK_RDMA = 0x14
NETLINK_ROUTE = 0x0
+ NETLINK_RX_RING = 0x6
NETLINK_SCSITRANSPORT = 0x12
NETLINK_SELINUX = 0x7
+ NETLINK_SOCK_DIAG = 0x4
+ NETLINK_TX_RING = 0x7
NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6
@@ -808,6 +845,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_DUMP_INTR = 0x10
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
@@ -1248,6 +1286,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0x1
@@ -1293,6 +1332,17 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1465,7 +1515,13 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6
+ VM_SOCKETS_INVALID_VERSION = 0xffffffff
VQUIT = 0x1
VREPRINT = 0xc
VSTART = 0x8
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 647a796e3..7889e6477 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
@@ -50,8 +50,16 @@ const (
AF_TIPC = 0x1e
AF_UNIX = 0x1
AF_UNSPEC = 0x0
+ AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
ARPHRD_ARCNET = 0x7
@@ -141,6 +149,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1000
BPF_A = 0x10
BPF_ABS = 0x20
@@ -370,6 +393,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -409,6 +438,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
IBSHIFT = 0x10
ICANON = 0x2
@@ -726,6 +757,7 @@ const (
NETLINK_AUDIT = 0x9
NETLINK_BROADCAST_ERROR = 0x4
NETLINK_CONNECTOR = 0xb
+ NETLINK_CRYPTO = 0x15
NETLINK_DNRTMSG = 0xe
NETLINK_DROP_MEMBERSHIP = 0x2
NETLINK_ECRYPTFS = 0x13
@@ -742,8 +774,11 @@ const (
NETLINK_PKTINFO = 0x3
NETLINK_RDMA = 0x14
NETLINK_ROUTE = 0x0
+ NETLINK_RX_RING = 0x6
NETLINK_SCSITRANSPORT = 0x12
NETLINK_SELINUX = 0x7
+ NETLINK_SOCK_DIAG = 0x4
+ NETLINK_TX_RING = 0x7
NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6
@@ -766,6 +801,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
NLM_F_MATCH = 0x200
@@ -1171,6 +1207,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0x1
@@ -1216,6 +1253,17 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1388,6 +1436,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6
VQUIT = 0x1
VREPRINT = 0xc
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 a6d1e1fa3..16a18f595 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
@@ -54,6 +54,13 @@ const (
AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
ARPHRD_ARCNET = 0x7
@@ -149,6 +156,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1000
BPF_A = 0x10
BPF_ABS = 0x20
@@ -399,6 +421,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -438,6 +466,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
IBSHIFT = 0x10
ICANON = 0x2
@@ -795,6 +825,7 @@ const (
NETLINK_ADD_MEMBERSHIP = 0x1
NETLINK_AUDIT = 0x9
NETLINK_BROADCAST_ERROR = 0x4
+ NETLINK_CAP_ACK = 0xa
NETLINK_CONNECTOR = 0xb
NETLINK_CRYPTO = 0x15
NETLINK_DNRTMSG = 0xe
@@ -807,6 +838,8 @@ const (
NETLINK_IP6_FW = 0xd
NETLINK_ISCSI = 0x8
NETLINK_KOBJECT_UEVENT = 0xf
+ NETLINK_LISTEN_ALL_NSID = 0x8
+ NETLINK_LIST_MEMBERSHIPS = 0x9
NETLINK_NETFILTER = 0xc
NETLINK_NFLOG = 0x5
NETLINK_NO_ENOBUFS = 0x5
@@ -840,6 +873,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_DUMP_INTR = 0x10
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
@@ -1294,6 +1328,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0x1
@@ -1347,7 +1382,18 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1542,6 +1588,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6
VQUIT = 0x1
VREPRINT = 0xc
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 e4fb9ad57..80e69e4cb 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
@@ -50,8 +50,16 @@ const (
AF_TIPC = 0x1e
AF_UNIX = 0x1
AF_UNSPEC = 0x0
+ AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
ARPHRD_ARCNET = 0x7
@@ -144,6 +152,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1000
BPF_A = 0x10
BPF_ABS = 0x20
@@ -375,6 +398,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -414,6 +443,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
IBSHIFT = 0x10
ICANON = 0x2
@@ -753,6 +784,7 @@ const (
NETLINK_ADD_MEMBERSHIP = 0x1
NETLINK_AUDIT = 0x9
NETLINK_BROADCAST_ERROR = 0x4
+ NETLINK_CAP_ACK = 0xa
NETLINK_CONNECTOR = 0xb
NETLINK_CRYPTO = 0x15
NETLINK_DNRTMSG = 0xe
@@ -765,14 +797,19 @@ const (
NETLINK_IP6_FW = 0xd
NETLINK_ISCSI = 0x8
NETLINK_KOBJECT_UEVENT = 0xf
+ NETLINK_LISTEN_ALL_NSID = 0x8
+ NETLINK_LIST_MEMBERSHIPS = 0x9
NETLINK_NETFILTER = 0xc
NETLINK_NFLOG = 0x5
NETLINK_NO_ENOBUFS = 0x5
NETLINK_PKTINFO = 0x3
NETLINK_RDMA = 0x14
NETLINK_ROUTE = 0x0
+ NETLINK_RX_RING = 0x6
NETLINK_SCSITRANSPORT = 0x12
NETLINK_SELINUX = 0x7
+ NETLINK_SOCK_DIAG = 0x4
+ NETLINK_TX_RING = 0x7
NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6
@@ -795,6 +832,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_DUMP_INTR = 0x10
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
@@ -1221,6 +1259,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0xffff
@@ -1267,6 +1306,17 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x1008
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1435,6 +1485,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4
VQUIT = 0x1
VREPRINT = 0xc
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 36535b242..9c91dbf60 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
@@ -56,6 +56,13 @@ const (
AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_6LOWPAN = 0x339
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
@@ -152,6 +159,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BPF_A = 0x10
BPF_ABS = 0x20
BPF_ADD = 0x0
@@ -374,6 +396,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FLUSHO = 0x2000
@@ -413,6 +441,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
ICANON = 0x2
ICMPV6_FILTER = 0x1
@@ -806,6 +836,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_DUMP_INTR = 0x10
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
@@ -1304,6 +1335,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0xffff
@@ -1362,7 +1394,18 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x1008
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1540,6 +1583,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4
VQUIT = 0x1
VREPRINT = 0xc
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 112f05de5..fb15b41ed 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
@@ -56,6 +56,13 @@ const (
AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_6LOWPAN = 0x339
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
@@ -152,6 +159,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BPF_A = 0x10
BPF_ABS = 0x20
BPF_ADD = 0x0
@@ -374,6 +396,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FLUSHO = 0x2000
@@ -413,6 +441,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
ICANON = 0x2
ICMPV6_FILTER = 0x1
@@ -806,6 +836,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_DUMP_INTR = 0x10
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
@@ -1304,6 +1335,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0xffff
@@ -1362,7 +1394,18 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x1008
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1540,6 +1583,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4
VQUIT = 0x1
VREPRINT = 0xc
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 0f5ee2237..9a3a73766 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
@@ -57,6 +57,13 @@ const (
AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_6LOWPAN = 0x339
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
@@ -153,6 +160,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1000
BPF_A = 0x10
BPF_ABS = 0x20
@@ -411,6 +433,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -453,6 +481,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
IBSHIFT = 0x10
ICANON = 0x2
@@ -1437,7 +1467,18 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x1008
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1641,6 +1682,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4
VQUIT = 0x1
VREPRINT = 0xc
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 4e4193951..4d602e6d2 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
@@ -54,6 +54,13 @@ const (
AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_6LOWPAN = 0x339
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
@@ -150,6 +157,21 @@ const (
B75 = 0x2
B921600 = 0x16
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1f
BPF_A = 0x10
BPF_ABS = 0x20
@@ -401,6 +423,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -443,6 +471,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x4000
IBSHIFT = 0x10
ICANON = 0x100
@@ -785,6 +815,7 @@ const (
NETLINK_ADD_MEMBERSHIP = 0x1
NETLINK_AUDIT = 0x9
NETLINK_BROADCAST_ERROR = 0x4
+ NETLINK_CAP_ACK = 0xa
NETLINK_CONNECTOR = 0xb
NETLINK_CRYPTO = 0x15
NETLINK_DNRTMSG = 0xe
@@ -797,6 +828,8 @@ const (
NETLINK_IP6_FW = 0xd
NETLINK_ISCSI = 0x8
NETLINK_KOBJECT_UEVENT = 0xf
+ NETLINK_LISTEN_ALL_NSID = 0x8
+ NETLINK_LIST_MEMBERSHIPS = 0x9
NETLINK_NETFILTER = 0xc
NETLINK_NFLOG = 0x5
NETLINK_NO_ENOBUFS = 0x5
@@ -832,6 +865,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_DUMP_INTR = 0x10
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
@@ -1361,6 +1395,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0x1
@@ -1415,7 +1450,18 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1614,6 +1660,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x5
VQUIT = 0x1
VREPRINT = 0xb
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 407e6b539..5280d9e8c 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
@@ -54,6 +54,13 @@ const (
AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
ARPHRD_ARCNET = 0x7
@@ -149,6 +156,21 @@ const (
B75 = 0x2
B921600 = 0x16
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1f
BPF_A = 0x10
BPF_ABS = 0x20
@@ -397,6 +419,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -436,6 +464,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x4000
IBSHIFT = 0x10
ICANON = 0x100
@@ -840,6 +870,7 @@ const (
NLM_F_ATOMIC = 0x400
NLM_F_CREATE = 0x400
NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
NLM_F_DUMP_INTR = 0x10
NLM_F_ECHO = 0x8
NLM_F_EXCL = 0x200
@@ -1361,6 +1392,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0x1
@@ -1414,7 +1446,18 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1613,6 +1656,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x5
VQUIT = 0x1
VREPRINT = 0xb
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 40c9b8793..81ad7a876 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
@@ -56,6 +56,13 @@ const (
AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_6LOWPAN = 0x339
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
@@ -152,6 +159,21 @@ const (
B75 = 0x2
B921600 = 0x1007
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1000
BPF_A = 0x10
BPF_ABS = 0x20
@@ -407,6 +429,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -449,6 +477,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x2
F_WRLCK = 0x1
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
IBSHIFT = 0x10
ICANON = 0x2
@@ -1412,6 +1442,7 @@ const (
SOL_IP = 0x0
SOL_IPV6 = 0x29
SOL_IRDA = 0x10a
+ SOL_NETLINK = 0x10e
SOL_PACKET = 0x107
SOL_RAW = 0xff
SOL_SOCKET = 0x1
@@ -1469,7 +1500,18 @@ const (
SO_TIMESTAMPING = 0x25
SO_TIMESTAMPNS = 0x23
SO_TYPE = 0x3
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x29
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1672,6 +1714,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x6
VQUIT = 0x1
VREPRINT = 0xc
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 62680ed8a..95de199fc 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
@@ -57,6 +57,13 @@ const (
AF_VSOCK = 0x28
AF_WANPIPE = 0x19
AF_X25 = 0x9
+ ALG_OP_DECRYPT = 0x0
+ ALG_OP_ENCRYPT = 0x1
+ ALG_SET_AEAD_ASSOCLEN = 0x4
+ ALG_SET_AEAD_AUTHSIZE = 0x5
+ ALG_SET_IV = 0x2
+ ALG_SET_KEY = 0x1
+ ALG_SET_OP = 0x3
ARPHRD_6LOWPAN = 0x339
ARPHRD_ADAPT = 0x108
ARPHRD_APPLETLK = 0x8
@@ -156,6 +163,21 @@ const (
B76800 = 0x1005
B921600 = 0x1009
B9600 = 0xd
+ BLKBSZGET = 0x80081270
+ BLKBSZSET = 0x40081271
+ BLKFLSBUF = 0x1261
+ BLKFRAGET = 0x1265
+ BLKFRASET = 0x1264
+ BLKGETSIZE = 0x1260
+ BLKGETSIZE64 = 0x80081272
+ BLKRAGET = 0x1263
+ BLKRASET = 0x1262
+ BLKROGET = 0x125e
+ BLKROSET = 0x125d
+ BLKRRPART = 0x125f
+ BLKSECTGET = 0x1267
+ BLKSECTSET = 0x1266
+ BLKSSZGET = 0x1268
BOTHER = 0x1000
BPF_A = 0x10
BPF_ABS = 0x20
@@ -415,6 +437,12 @@ const (
EXTA = 0xe
EXTB = 0xf
EXTPROC = 0x10000
+ FALLOC_FL_COLLAPSE_RANGE = 0x8
+ FALLOC_FL_INSERT_RANGE = 0x20
+ FALLOC_FL_KEEP_SIZE = 0x1
+ FALLOC_FL_NO_HIDE_STALE = 0x4
+ FALLOC_FL_PUNCH_HOLE = 0x2
+ FALLOC_FL_ZERO_RANGE = 0x10
FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400
FF0 = 0x0
@@ -457,6 +485,8 @@ const (
F_ULOCK = 0x0
F_UNLCK = 0x3
F_WRLCK = 0x2
+ GRND_NONBLOCK = 0x1
+ GRND_RANDOM = 0x2
HUPCL = 0x400
IBSHIFT = 0x10
ICANON = 0x2
@@ -1510,7 +1540,18 @@ const (
SO_TIMESTAMPING = 0x23
SO_TIMESTAMPNS = 0x21
SO_TYPE = 0x1008
+ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2
+ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1
+ SO_VM_SOCKETS_BUFFER_SIZE = 0x0
+ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6
+ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7
+ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3
+ SO_VM_SOCKETS_TRUSTED = 0x5
SO_WIFI_STATUS = 0x25
+ SPLICE_F_GIFT = 0x8
+ SPLICE_F_MORE = 0x4
+ SPLICE_F_MOVE = 0x1
+ SPLICE_F_NONBLOCK = 0x2
S_BLKSIZE = 0x200
S_IEXEC = 0x40
S_IFBLK = 0x6000
@@ -1715,6 +1756,11 @@ const (
VINTR = 0x0
VKILL = 0x3
VLNEXT = 0xf
+ VMADDR_CID_ANY = 0xffffffff
+ VMADDR_CID_HOST = 0x2
+ VMADDR_CID_HYPERVISOR = 0x0
+ VMADDR_CID_RESERVED = 0x1
+ VMADDR_PORT_ANY = 0xffffffff
VMIN = 0x4
VQUIT = 0x1
VREPRINT = 0xc
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
index 031034a34..e48f4a5c1 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
+// mksyscall.pl -l32 -tags darwin,386 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build 386,darwin
+// +build darwin,386
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -307,7 +305,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -333,7 +330,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -349,7 +345,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -365,7 +360,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -381,7 +375,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -397,7 +390,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -449,8 +441,6 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
return
}
_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -727,7 +717,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -748,8 +737,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -775,7 +762,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -791,7 +777,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -807,7 +792,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -823,7 +807,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -907,7 +890,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -924,7 +906,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -998,7 +979,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1020,8 +1000,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1037,7 +1015,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1053,7 +1030,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1120,7 +1096,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1227,7 +1202,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1243,7 +1217,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1264,8 +1237,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1291,7 +1262,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1315,7 +1285,6 @@ func Undelete(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1331,7 +1300,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1347,7 +1315,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
index ee96f78ba..672ada0e4 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go
+// mksyscall.pl -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build amd64,darwin
+// +build darwin,amd64
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -307,7 +305,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -333,7 +330,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -349,7 +345,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -365,7 +360,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -381,7 +375,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -397,7 +390,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -449,8 +441,6 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
return
}
_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -727,7 +717,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -748,8 +737,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -775,7 +762,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -791,7 +777,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -807,7 +792,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -823,7 +807,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -907,7 +890,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -924,7 +906,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -998,7 +979,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1020,8 +1000,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1037,7 +1015,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1053,7 +1030,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1120,7 +1096,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1227,7 +1202,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1243,7 +1217,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1264,8 +1237,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1291,7 +1262,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1315,7 +1285,6 @@ func Undelete(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1331,7 +1300,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1347,7 +1315,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1423,7 +1390,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
index e52cd0d54..d516409db 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
+// mksyscall.pl -l32 -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build arm,darwin
+// +build darwin,arm
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -307,7 +305,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -333,7 +330,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -349,7 +345,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -365,7 +360,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -381,7 +375,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -397,7 +390,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -449,8 +441,6 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
return
}
_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -558,7 +548,7 @@ func Fsync(fd int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Ftruncate(fd int, length int64) (err error) {
- _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -727,7 +717,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -748,8 +737,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -775,7 +762,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -791,7 +777,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -807,7 +792,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -823,7 +807,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -907,7 +890,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -924,7 +906,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -941,7 +922,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
} else {
_p0 = unsafe.Pointer(&_zero)
}
- r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -958,7 +939,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
} else {
_p0 = unsafe.Pointer(&_zero)
}
- r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -998,7 +979,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1020,8 +1000,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1037,7 +1015,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1053,7 +1030,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1063,8 +1039,8 @@ func Rmdir(path string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
- r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
- newoffset = int64(r0)
+ r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+ newoffset = int64(int64(r1)<<32 | int64(r0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1120,7 +1096,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1227,7 +1202,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1243,7 +1217,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1264,8 +1237,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1290,8 +1261,7 @@ func Truncate(path string, length int64) (err error) {
if err != nil {
return
}
- _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
+ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1315,7 +1285,6 @@ func Undelete(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1331,7 +1300,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1347,7 +1315,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1374,7 +1341,7 @@ func write(fd int, p []byte) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {
- r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)
ret = uintptr(r0)
if e1 != 0 {
err = errnoErr(e1)
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
index 9863ef99e..e97759c35 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
+// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build arm64,darwin
+// +build darwin,arm64
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -307,7 +305,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -333,7 +330,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -349,7 +345,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -365,7 +360,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -381,7 +375,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -397,7 +390,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -449,8 +441,6 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
return
}
_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -727,7 +717,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -748,8 +737,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -775,7 +762,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -791,7 +777,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -807,7 +792,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -823,7 +807,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -907,7 +890,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -924,7 +906,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -998,7 +979,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1020,8 +1000,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1037,7 +1015,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1053,7 +1030,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1120,7 +1096,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1227,7 +1202,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1243,7 +1217,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1264,8 +1237,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1291,7 +1262,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1315,7 +1285,6 @@ func Undelete(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1331,7 +1300,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1347,7 +1315,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
index 78de48dcf..3e9d82a27 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -dragonfly syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go
+// mksyscall.pl -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build amd64,dragonfly
+// +build dragonfly,amd64
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -321,7 +319,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -347,7 +344,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -363,7 +359,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -379,7 +374,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +389,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -411,7 +404,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -739,7 +731,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -760,8 +751,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -787,7 +776,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -803,7 +791,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -819,7 +806,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -835,7 +821,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -929,7 +914,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -946,7 +930,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -986,7 +969,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1008,8 +990,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1025,7 +1005,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1041,7 +1020,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1108,7 +1086,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1225,7 +1202,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1241,7 +1217,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1262,8 +1237,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1289,7 +1262,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1313,7 +1285,6 @@ func Undelete(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1329,7 +1300,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1345,7 +1315,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
index fade994dc..f53801cee 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go
+// mksyscall.pl -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build 386,freebsd
+// +build freebsd,386
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -287,7 +285,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -313,7 +310,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -329,7 +325,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -345,7 +340,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -361,7 +355,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -377,7 +370,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -431,7 +423,6 @@ func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbyt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -448,7 +439,6 @@ func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbyt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -465,7 +455,6 @@ func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -497,8 +486,6 @@ func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -520,8 +507,6 @@ func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -543,8 +528,6 @@ func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err err
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -560,7 +543,6 @@ func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -582,8 +564,6 @@ func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -605,8 +585,6 @@ func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -628,8 +606,6 @@ func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err err
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -645,7 +621,6 @@ func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -946,7 +921,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -967,8 +941,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -994,7 +966,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1010,7 +981,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1026,7 +996,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1042,7 +1011,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1136,7 +1104,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1153,7 +1120,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1227,7 +1193,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1249,8 +1214,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1266,7 +1229,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1282,7 +1244,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1349,7 +1310,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1466,7 +1426,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1482,7 +1441,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1503,8 +1461,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1530,7 +1486,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1554,7 +1509,6 @@ func Undelete(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1570,7 +1524,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1586,7 +1539,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
index c28281e83..55b07412c 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
+// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build amd64,freebsd
+// +build freebsd,amd64
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -287,7 +285,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -313,7 +310,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -329,7 +325,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -345,7 +340,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -361,7 +355,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -377,7 +370,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -431,7 +423,6 @@ func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbyt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -448,7 +439,6 @@ func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbyt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -465,7 +455,6 @@ func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -497,8 +486,6 @@ func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -520,8 +507,6 @@ func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -543,8 +528,6 @@ func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err err
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -560,7 +543,6 @@ func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -582,8 +564,6 @@ func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -605,8 +585,6 @@ func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -628,8 +606,6 @@ func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err err
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -645,7 +621,6 @@ func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -946,7 +921,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -967,8 +941,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -994,7 +966,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1010,7 +981,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1026,7 +996,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1042,7 +1011,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1136,7 +1104,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1153,7 +1120,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1227,7 +1193,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1249,8 +1214,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1266,7 +1229,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1282,7 +1244,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1349,7 +1310,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1466,7 +1426,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1482,7 +1441,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1503,8 +1461,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1530,7 +1486,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1554,7 +1509,6 @@ func Undelete(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1570,7 +1524,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1586,7 +1539,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
index a18ba5c88..0e9b42bf4 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 -arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go
+// mksyscall.pl -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build arm,freebsd
+// +build freebsd,arm
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -287,7 +285,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -313,7 +310,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -329,7 +325,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -345,7 +340,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -361,7 +355,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -377,7 +370,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -431,7 +423,6 @@ func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbyt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -448,7 +439,6 @@ func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbyt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -465,7 +455,6 @@ func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -497,8 +486,6 @@ func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -520,8 +507,6 @@ func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -543,8 +528,6 @@ func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err err
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -560,7 +543,6 @@ func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -582,8 +564,6 @@ func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -605,8 +585,6 @@ func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintpt
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -628,8 +606,6 @@ func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err err
return
}
_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -645,7 +621,6 @@ func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (
return
}
r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)
- use(unsafe.Pointer(_p0))
ret = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -946,7 +921,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -967,8 +941,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -994,7 +966,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1010,7 +981,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1026,7 +996,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1042,7 +1011,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1136,7 +1104,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1153,7 +1120,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1227,7 +1193,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -1249,8 +1214,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1266,7 +1229,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1282,7 +1244,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1349,7 +1310,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1466,7 +1426,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1482,7 +1441,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1503,8 +1461,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1530,7 +1486,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1554,7 +1509,6 @@ func Undelete(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1570,7 +1524,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1586,7 +1539,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
index fa92387b1..d4ec806db 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 syscall_linux.go syscall_linux_386.go
+// mksyscall.pl -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build 386,linux
+// +build linux,386
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1351,7 +1334,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1367,7 +1349,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1499,7 +1480,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1525,7 +1505,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1652,7 +1631,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
index b34d5c26f..8b2e87dfc 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_linux.go syscall_linux_amd64.go
+// mksyscall.pl -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build amd64,linux
+// +build linux,amd64
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1368,7 +1351,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1394,7 +1376,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1578,7 +1559,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1594,7 +1574,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1620,7 +1599,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1826,7 +1804,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
index 2e5cb3984..82d36a411 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 -arm syscall_linux.go syscall_linux_arm.go
+// mksyscall.pl -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build arm,linux
+// +build linux,arm
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1480,7 +1463,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1506,7 +1488,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1625,7 +1606,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1712,7 +1692,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
index 0d584cc0d..f6cc3200d 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_linux.go syscall_linux_arm64.go
+// mksyscall.pl -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build arm64,linux
+// +build linux,arm64
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1255,7 +1238,6 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1501,7 +1483,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1527,7 +1508,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
index a18e0b171..f91afb481 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -b32 -arm syscall_linux.go syscall_linux_mipsx.go
+// mksyscall.pl -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build mips,linux
+// +build linux,mips
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1280,7 +1263,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1453,7 +1435,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1700,7 +1681,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1726,7 +1706,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1742,7 +1721,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
index bf6f3603b..657d11eff 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_linux.go syscall_linux_mips64x.go
+// mksyscall.pl -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build mips64,linux
+// +build linux,mips64
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1307,7 +1290,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1501,7 +1483,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1527,7 +1508,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1743,7 +1723,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1779,7 +1758,6 @@ func lstat(path string, st *stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1795,7 +1773,6 @@ func stat(path string, st *stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
index 8c86bd70b..31ff1774c 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_linux.go syscall_linux_mips64x.go
+// mksyscall.pl -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build mips64le,linux
+// +build linux,mips64le
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1307,7 +1290,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1501,7 +1483,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1527,7 +1508,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1743,7 +1723,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1779,7 +1758,6 @@ func lstat(path string, st *stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1795,7 +1773,6 @@ func stat(path string, st *stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
index 645e00ebd..797e6336e 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 -arm syscall_linux.go syscall_linux_mipsx.go
+// mksyscall.pl -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build mipsle,linux
+// +build linux,mipsle
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1280,7 +1263,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1453,7 +1435,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1700,7 +1681,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1726,7 +1706,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1742,7 +1721,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
index f5d488b4a..307dbb5bd 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_linux.go syscall_linux_ppc64x.go
+// mksyscall.pl -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build ppc64,linux
+// +build linux,ppc64
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1358,7 +1341,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1384,7 +1366,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1568,7 +1549,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1584,7 +1564,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1610,7 +1589,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1837,7 +1815,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
index 5183711ec..f458a63ad 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_linux.go syscall_linux_ppc64x.go
+// mksyscall.pl -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build ppc64le,linux
+// +build linux,ppc64le
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1358,7 +1341,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1384,7 +1366,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1568,7 +1549,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1584,7 +1564,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1610,7 +1589,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1837,7 +1815,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
index 4c7ed08cc..b1d5a9bc3 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_linux.go syscall_linux_s390x.go
+// mksyscall.pl -tags linux,s390x syscall_linux.go syscall_linux_s390x.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build s390x,linux
+// +build linux,s390x
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1348,7 +1331,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1364,7 +1346,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1538,7 +1519,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1554,7 +1534,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1580,7 +1559,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1627,7 +1605,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
index beb83e4fd..ce3ec585b 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl syscall_linux.go syscall_linux_sparc64.go
+// mksyscall.pl -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build sparc64,linux
+// +build linux,sparc64
package unix
@@ -26,8 +26,6 @@ func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags in
return
}
_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -43,7 +41,6 @@ func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -77,7 +74,6 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -99,8 +95,6 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -116,7 +110,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -132,7 +125,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -148,7 +140,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
return
}
_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -212,7 +203,6 @@ func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {
return
}
_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,9 +228,6 @@ func mount(source string, target string, fstype string, flags uintptr, data *byt
return
}
_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
- use(unsafe.Pointer(_p2))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -256,7 +243,6 @@ func Acct(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -283,7 +269,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -299,7 +284,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -395,7 +379,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -441,7 +424,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -457,7 +439,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -562,6 +543,23 @@ func Getpriority(which int, who int) (prio int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+func Getrandom(buf []byte, flags int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(buf) > 0 {
+ _p0 = unsafe.Pointer(&buf[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
func Getrusage(who int, rusage *Rusage) (err error) {
_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
if e1 != 0 {
@@ -609,8 +607,6 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
_p2 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -627,7 +623,6 @@ func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err e
return
}
r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))
- use(unsafe.Pointer(_p0))
watchdesc = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -699,7 +694,6 @@ func Listxattr(path string, dest []byte) (sz int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))
- use(unsafe.Pointer(_p0))
sz = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -716,7 +710,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -732,7 +725,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -763,8 +755,6 @@ func PivotRoot(newroot string, putold string) (err error) {
return
}
_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -822,8 +812,6 @@ func Removexattr(path string, attr string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -844,8 +832,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -955,8 +941,6 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
_p2 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1039,7 +1023,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1338,7 +1321,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1364,7 +1346,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1548,7 +1529,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1564,7 +1544,6 @@ func Statfs(path string, buf *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1590,7 +1569,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1806,7 +1784,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
index b16e1d0ee..3182345ec 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 -netbsd syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go
+// mksyscall.pl -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build 386,netbsd
+// +build netbsd,386
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -304,7 +302,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -330,7 +327,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -346,7 +342,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -362,7 +357,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -378,7 +372,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -394,7 +387,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -687,7 +679,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -708,8 +699,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -735,7 +724,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -751,7 +739,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -767,7 +754,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -783,7 +769,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -877,7 +862,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -894,7 +878,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -968,7 +951,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -990,8 +972,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1007,7 +987,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1023,7 +1002,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1171,7 +1149,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1192,8 +1169,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1219,7 +1194,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1243,7 +1217,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1259,7 +1232,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
index b63667da9..74ba8189a 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -netbsd syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go
+// mksyscall.pl -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build amd64,netbsd
+// +build netbsd,amd64
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -304,7 +302,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -330,7 +327,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -346,7 +342,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -362,7 +357,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -378,7 +372,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -394,7 +387,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -687,7 +679,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -708,8 +699,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -735,7 +724,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -751,7 +739,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -767,7 +754,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -783,7 +769,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -877,7 +862,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -894,7 +878,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -968,7 +951,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -990,8 +972,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1007,7 +987,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1023,7 +1002,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1171,7 +1149,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1192,8 +1169,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1219,7 +1194,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1243,7 +1217,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1259,7 +1232,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
index b0d19038d..1f346e2f5 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 -arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go
+// mksyscall.pl -l32 -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build arm,netbsd
+// +build netbsd,arm
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -304,7 +302,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -330,7 +327,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -346,7 +342,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -362,7 +357,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -378,7 +372,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -394,7 +387,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -687,7 +679,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -708,8 +699,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -735,7 +724,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -751,7 +739,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -767,7 +754,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -783,7 +769,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -877,7 +862,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -894,7 +878,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -968,7 +951,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -990,8 +972,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1007,7 +987,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1023,7 +1002,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1171,7 +1149,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1192,8 +1169,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1219,7 +1194,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1243,7 +1217,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1259,7 +1232,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
index f91a5b856..ca3e81392 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -l32 -openbsd syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go
+// mksyscall.pl -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build 386,openbsd
+// +build openbsd,386
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -302,7 +300,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -328,7 +325,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -344,7 +340,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -360,7 +355,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -376,7 +370,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -392,7 +385,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -695,7 +687,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -716,8 +707,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -743,7 +732,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -759,7 +747,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -775,7 +762,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -791,7 +777,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -885,7 +870,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -902,7 +886,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -976,7 +959,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -998,8 +980,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1015,7 +995,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1031,7 +1010,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1098,7 +1076,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1215,7 +1192,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1231,7 +1207,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1252,8 +1227,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1279,7 +1252,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1303,7 +1275,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1319,7 +1290,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
index 2e8d59d72..bf63d552e 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
@@ -1,7 +1,7 @@
-// mksyscall.pl -openbsd syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go
+// mksyscall.pl -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build amd64,openbsd
+// +build openbsd,amd64
package unix
@@ -222,7 +222,6 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
_p0 = unsafe.Pointer(&_zero)
}
_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
- use(_p0)
if e1 != 0 {
err = errnoErr(e1)
}
@@ -238,7 +237,6 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
return
}
_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -302,7 +300,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -328,7 +325,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -344,7 +340,6 @@ func Chflags(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -360,7 +355,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -376,7 +370,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -392,7 +385,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -695,7 +687,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -716,8 +707,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -743,7 +732,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -759,7 +747,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -775,7 +762,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -791,7 +777,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -885,7 +870,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -902,7 +886,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -976,7 +959,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = unsafe.Pointer(&_zero)
}
r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = errnoErr(e1)
@@ -998,8 +980,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1015,7 +995,6 @@ func Revoke(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1031,7 +1010,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1098,7 +1076,6 @@ func Setlogin(name string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1215,7 +1192,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1231,7 +1207,6 @@ func Statfs(path string, stat *Statfs_t) (err error) {
return
}
_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1252,8 +1227,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1279,7 +1252,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1303,7 +1275,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
@@ -1319,7 +1290,6 @@ func Unmount(path string, flags int) (err error) {
return
}
_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = errnoErr(e1)
}
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 c0ecfc044..bdf140b18 100644
--- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
@@ -1,7 +1,7 @@
-// mksyscall_solaris.pl syscall_solaris.go syscall_solaris_amd64.go
+// mksyscall_solaris.pl -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
-// +build amd64,solaris
+// +build solaris,amd64
package unix
@@ -442,7 +442,6 @@ func utimes(path string, times *[2]Timeval) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -456,7 +455,6 @@ func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -530,7 +528,6 @@ func Access(path string, mode uint32) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -552,7 +549,6 @@ func Chdir(path string) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -566,7 +562,6 @@ func Chmod(path string, mode uint32) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -580,7 +575,6 @@ func Chown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -594,7 +588,6 @@ func Chroot(path string) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -616,7 +609,6 @@ func Creat(path string, mode uint32) (fd int, err error) {
return
}
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = e1
@@ -669,7 +661,6 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -691,7 +682,6 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -838,7 +828,6 @@ func Lchown(path string, uid int, gid int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -857,8 +846,6 @@ func Link(path string, link string) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = e1
}
@@ -880,7 +867,6 @@ func Lstat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -906,7 +892,6 @@ func Mkdir(path string, mode uint32) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -920,7 +905,6 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -934,7 +918,6 @@ func Mkfifo(path string, mode uint32) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -948,7 +931,6 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -962,7 +944,6 @@ func Mknod(path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -976,7 +957,6 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -1050,7 +1030,6 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
return
}
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = e1
@@ -1065,7 +1044,6 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
return
}
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)
- use(unsafe.Pointer(_p0))
fd = int(r0)
if e1 != 0 {
err = e1
@@ -1080,7 +1058,6 @@ func Pathconf(path string, name int) (val int, err error) {
return
}
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
val = int(r0)
if e1 != 0 {
err = e1
@@ -1146,7 +1123,6 @@ func Readlink(path string, buf []byte) (n int, err error) {
_p1 = &buf[0]
}
r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0)
- use(unsafe.Pointer(_p0))
n = int(r0)
if e1 != 0 {
err = e1
@@ -1166,8 +1142,6 @@ func Rename(from string, to string) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = e1
}
@@ -1186,8 +1160,6 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = e1
}
@@ -1201,7 +1173,6 @@ func Rmdir(path string) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -1325,7 +1296,6 @@ func Stat(path string, stat *Stat_t) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -1344,8 +1314,6 @@ func Symlink(path string, link string) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
- use(unsafe.Pointer(_p1))
if e1 != 0 {
err = e1
}
@@ -1376,7 +1344,6 @@ func Truncate(path string, length int64) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -1420,7 +1387,6 @@ func Unmount(target string, flags int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -1434,7 +1400,6 @@ func Unlink(path string) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -1448,7 +1413,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = e1
}
@@ -1470,7 +1434,6 @@ func Utime(path string, buf *Utimbuf) (err error) {
return
}
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0)
- use(unsafe.Pointer(_p0))
if e1 != 0 {
err = 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 ba952c675..206b3c281 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/asm/unistd_32.h
+// mksysnum_linux.pl -Ilinux/usr/include -m32 -D__i386__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build 386,linux
@@ -226,7 +226,6 @@ const (
SYS_PIVOT_ROOT = 217
SYS_MINCORE = 218
SYS_MADVISE = 219
- SYS_MADVISE1 = 219
SYS_GETDENTS64 = 220
SYS_FCNTL64 = 221
SYS_GETTID = 224
@@ -352,4 +351,38 @@ const (
SYS_SETNS = 346
SYS_PROCESS_VM_READV = 347
SYS_PROCESS_VM_WRITEV = 348
+ SYS_KCMP = 349
+ SYS_FINIT_MODULE = 350
+ SYS_SCHED_SETATTR = 351
+ SYS_SCHED_GETATTR = 352
+ SYS_RENAMEAT2 = 353
+ SYS_SECCOMP = 354
+ SYS_GETRANDOM = 355
+ SYS_MEMFD_CREATE = 356
+ SYS_BPF = 357
+ SYS_EXECVEAT = 358
+ SYS_SOCKET = 359
+ SYS_SOCKETPAIR = 360
+ SYS_BIND = 361
+ SYS_CONNECT = 362
+ SYS_LISTEN = 363
+ SYS_ACCEPT4 = 364
+ SYS_GETSOCKOPT = 365
+ SYS_SETSOCKOPT = 366
+ SYS_GETSOCKNAME = 367
+ SYS_GETPEERNAME = 368
+ SYS_SENDTO = 369
+ SYS_SENDMSG = 370
+ SYS_RECVFROM = 371
+ SYS_RECVMSG = 372
+ SYS_SHUTDOWN = 373
+ SYS_USERFAULTFD = 374
+ SYS_MEMBARRIER = 375
+ SYS_MLOCK2 = 376
+ SYS_COPY_FILE_RANGE = 377
+ SYS_PREADV2 = 378
+ SYS_PWRITEV2 = 379
+ SYS_PKEY_MPROTECT = 380
+ SYS_PKEY_ALLOC = 381
+ SYS_PKEY_FREE = 382
)
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 ddac31f58..904231736 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/asm/unistd_64.h
+// mksysnum_linux.pl -Ilinux/usr/include -m64 linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build amd64,linux
@@ -318,4 +318,24 @@ const (
SYS_GETCPU = 309
SYS_PROCESS_VM_READV = 310
SYS_PROCESS_VM_WRITEV = 311
+ SYS_KCMP = 312
+ SYS_FINIT_MODULE = 313
+ SYS_SCHED_SETATTR = 314
+ SYS_SCHED_GETATTR = 315
+ SYS_RENAMEAT2 = 316
+ SYS_SECCOMP = 317
+ SYS_GETRANDOM = 318
+ SYS_MEMFD_CREATE = 319
+ SYS_KEXEC_FILE_LOAD = 320
+ SYS_BPF = 321
+ SYS_EXECVEAT = 322
+ SYS_USERFAULTFD = 323
+ SYS_MEMBARRIER = 324
+ SYS_MLOCK2 = 325
+ SYS_COPY_FILE_RANGE = 326
+ SYS_PREADV2 = 327
+ SYS_PWRITEV2 = 328
+ SYS_PKEY_MPROTECT = 329
+ SYS_PKEY_ALLOC = 330
+ SYS_PKEY_FREE = 331
)
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 45ced17fc..e3e674562 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl
+// mksysnum_linux.pl -Ilinux/usr/include -m32 -D__ARM_EABI__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build arm,linux
@@ -6,8 +6,6 @@
package unix
const (
- SYS_OABI_SYSCALL_BASE = 0
- SYS_SYSCALL_BASE = 0
SYS_RESTART_SYSCALL = 0
SYS_EXIT = 1
SYS_FORK = 2
@@ -20,21 +18,16 @@ const (
SYS_UNLINK = 10
SYS_EXECVE = 11
SYS_CHDIR = 12
- SYS_TIME = 13
SYS_MKNOD = 14
SYS_CHMOD = 15
SYS_LCHOWN = 16
SYS_LSEEK = 19
SYS_GETPID = 20
SYS_MOUNT = 21
- SYS_UMOUNT = 22
SYS_SETUID = 23
SYS_GETUID = 24
- SYS_STIME = 25
SYS_PTRACE = 26
- SYS_ALARM = 27
SYS_PAUSE = 29
- SYS_UTIME = 30
SYS_ACCESS = 33
SYS_NICE = 34
SYS_SYNC = 36
@@ -69,20 +62,16 @@ const (
SYS_SIGPENDING = 73
SYS_SETHOSTNAME = 74
SYS_SETRLIMIT = 75
- SYS_GETRLIMIT = 76
SYS_GETRUSAGE = 77
SYS_GETTIMEOFDAY = 78
SYS_SETTIMEOFDAY = 79
SYS_GETGROUPS = 80
SYS_SETGROUPS = 81
- SYS_SELECT = 82
SYS_SYMLINK = 83
SYS_READLINK = 85
SYS_USELIB = 86
SYS_SWAPON = 87
SYS_REBOOT = 88
- SYS_READDIR = 89
- SYS_MMAP = 90
SYS_MUNMAP = 91
SYS_TRUNCATE = 92
SYS_FTRUNCATE = 93
@@ -92,7 +81,6 @@ const (
SYS_SETPRIORITY = 97
SYS_STATFS = 99
SYS_FSTATFS = 100
- SYS_SOCKETCALL = 102
SYS_SYSLOG = 103
SYS_SETITIMER = 104
SYS_GETITIMER = 105
@@ -100,11 +88,9 @@ const (
SYS_LSTAT = 107
SYS_FSTAT = 108
SYS_VHANGUP = 111
- SYS_SYSCALL = 113
SYS_WAIT4 = 114
SYS_SWAPOFF = 115
SYS_SYSINFO = 116
- SYS_IPC = 117
SYS_FSYNC = 118
SYS_SIGRETURN = 119
SYS_CLONE = 120
@@ -353,4 +339,23 @@ const (
SYS_SETNS = 375
SYS_PROCESS_VM_READV = 376
SYS_PROCESS_VM_WRITEV = 377
+ SYS_KCMP = 378
+ SYS_FINIT_MODULE = 379
+ SYS_SCHED_SETATTR = 380
+ SYS_SCHED_GETATTR = 381
+ SYS_RENAMEAT2 = 382
+ SYS_SECCOMP = 383
+ SYS_GETRANDOM = 384
+ SYS_MEMFD_CREATE = 385
+ SYS_BPF = 386
+ SYS_EXECVEAT = 387
+ SYS_USERFAULTFD = 388
+ SYS_MEMBARRIER = 389
+ SYS_MLOCK2 = 390
+ SYS_COPY_FILE_RANGE = 391
+ SYS_PREADV2 = 392
+ SYS_PWRITEV2 = 393
+ SYS_PKEY_MPROTECT = 394
+ SYS_PKEY_ALLOC = 395
+ SYS_PKEY_FREE = 396
)
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 2e9514f28..90e43d006 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/asm-generic/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m64 linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build arm64,linux
@@ -269,4 +269,17 @@ const (
SYS_SCHED_GETATTR = 275
SYS_RENAMEAT2 = 276
SYS_SECCOMP = 277
+ SYS_GETRANDOM = 278
+ SYS_MEMFD_CREATE = 279
+ SYS_BPF = 280
+ SYS_EXECVEAT = 281
+ SYS_USERFAULTFD = 282
+ SYS_MEMBARRIER = 283
+ SYS_MLOCK2 = 284
+ SYS_COPY_FILE_RANGE = 285
+ SYS_PREADV2 = 286
+ SYS_PWRITEV2 = 287
+ SYS_PKEY_MPROTECT = 288
+ SYS_PKEY_ALLOC = 289
+ SYS_PKEY_FREE = 290
)
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 0786867e9..77ff644d7 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/mips-linux-gnu/asm/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m32 -D_MIPS_SIM=_MIPS_SIM_ABI32 -D__MIPSEB__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build mips,linux
@@ -352,8 +352,23 @@ const (
SYS_SETNS = 4344
SYS_PROCESS_VM_READV = 4345
SYS_PROCESS_VM_WRITEV = 4346
- SYS_LINUX_SYSCALLS = 4346
- SYS_O32_LINUX_SYSCALLS = 4346
- SYS_64_LINUX_SYSCALLS = 4305
- SYS_N32_LINUX_SYSCALLS = 4310
+ SYS_KCMP = 4347
+ SYS_FINIT_MODULE = 4348
+ SYS_SCHED_SETATTR = 4349
+ SYS_SCHED_GETATTR = 4350
+ SYS_RENAMEAT2 = 4351
+ SYS_SECCOMP = 4352
+ SYS_GETRANDOM = 4353
+ SYS_MEMFD_CREATE = 4354
+ SYS_BPF = 4355
+ SYS_EXECVEAT = 4356
+ SYS_USERFAULTFD = 4357
+ SYS_MEMBARRIER = 4358
+ SYS_MLOCK2 = 4359
+ SYS_COPY_FILE_RANGE = 4360
+ SYS_PREADV2 = 4361
+ SYS_PWRITEV2 = 4362
+ SYS_PKEY_MPROTECT = 4363
+ SYS_PKEY_ALLOC = 4364
+ SYS_PKEY_FREE = 4365
)
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 5ffe1c719..fc86fcdb6 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/asm/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m64 -D_MIPS_SIM=_MIPS_SIM_ABI64 -D__MIPSEB__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build mips64,linux
@@ -324,4 +324,11 @@ const (
SYS_EXECVEAT = 5316
SYS_USERFAULTFD = 5317
SYS_MEMBARRIER = 5318
+ SYS_MLOCK2 = 5319
+ SYS_COPY_FILE_RANGE = 5320
+ SYS_PREADV2 = 5321
+ SYS_PWRITEV2 = 5322
+ SYS_PKEY_MPROTECT = 5323
+ SYS_PKEY_ALLOC = 5324
+ SYS_PKEY_FREE = 5325
)
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 d192b940c..993873c37 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/asm/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m64 -D_MIPS_SIM=_MIPS_SIM_ABI64 -D__MIPSEL__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build mips64le,linux
@@ -324,4 +324,11 @@ const (
SYS_EXECVEAT = 5316
SYS_USERFAULTFD = 5317
SYS_MEMBARRIER = 5318
+ SYS_MLOCK2 = 5319
+ SYS_COPY_FILE_RANGE = 5320
+ SYS_PREADV2 = 5321
+ SYS_PWRITEV2 = 5322
+ SYS_PKEY_MPROTECT = 5323
+ SYS_PKEY_ALLOC = 5324
+ SYS_PKEY_FREE = 5325
)
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 25d231708..f0155ba5a 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/mips-linux-gnu/asm/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m32 -D_MIPS_SIM=_MIPS_SIM_ABI32 -D__MIPSEL__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build mipsle,linux
@@ -352,8 +352,23 @@ const (
SYS_SETNS = 4344
SYS_PROCESS_VM_READV = 4345
SYS_PROCESS_VM_WRITEV = 4346
- SYS_LINUX_SYSCALLS = 4346
- SYS_O32_LINUX_SYSCALLS = 4346
- SYS_64_LINUX_SYSCALLS = 4305
- SYS_N32_LINUX_SYSCALLS = 4310
+ SYS_KCMP = 4347
+ SYS_FINIT_MODULE = 4348
+ SYS_SCHED_SETATTR = 4349
+ SYS_SCHED_GETATTR = 4350
+ SYS_RENAMEAT2 = 4351
+ SYS_SECCOMP = 4352
+ SYS_GETRANDOM = 4353
+ SYS_MEMFD_CREATE = 4354
+ SYS_BPF = 4355
+ SYS_EXECVEAT = 4356
+ SYS_USERFAULTFD = 4357
+ SYS_MEMBARRIER = 4358
+ SYS_MLOCK2 = 4359
+ SYS_COPY_FILE_RANGE = 4360
+ SYS_PREADV2 = 4361
+ SYS_PWRITEV2 = 4362
+ SYS_PKEY_MPROTECT = 4363
+ SYS_PKEY_ALLOC = 4364
+ SYS_PKEY_FREE = 4365
)
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 e1b08f00d..0deec82c7 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/asm/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__powerpc64__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build ppc64,linux
@@ -357,4 +357,13 @@ const (
SYS_GETRANDOM = 359
SYS_MEMFD_CREATE = 360
SYS_BPF = 361
+ SYS_EXECVEAT = 362
+ SYS_SWITCH_ENDIAN = 363
+ SYS_USERFAULTFD = 364
+ SYS_MEMBARRIER = 365
+ SYS_MLOCK2 = 378
+ SYS_COPY_FILE_RANGE = 379
+ SYS_PREADV2 = 380
+ SYS_PWRITEV2 = 381
+ SYS_KEXEC_FILE_LOAD = 382
)
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 45e63f51a..3f701be7c 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/powerpc64le-linux-gnu/asm/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__powerpc64__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build ppc64le,linux
@@ -350,4 +350,20 @@ const (
SYS_PROCESS_VM_WRITEV = 352
SYS_FINIT_MODULE = 353
SYS_KCMP = 354
+ SYS_SCHED_SETATTR = 355
+ SYS_SCHED_GETATTR = 356
+ SYS_RENAMEAT2 = 357
+ SYS_SECCOMP = 358
+ SYS_GETRANDOM = 359
+ SYS_MEMFD_CREATE = 360
+ SYS_BPF = 361
+ SYS_EXECVEAT = 362
+ SYS_SWITCH_ENDIAN = 363
+ SYS_USERFAULTFD = 364
+ SYS_MEMBARRIER = 365
+ SYS_MLOCK2 = 378
+ SYS_COPY_FILE_RANGE = 379
+ SYS_PREADV2 = 380
+ SYS_PWRITEV2 = 381
+ SYS_KEXEC_FILE_LOAD = 382
)
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 42d4f5cda..8b35997d6 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/asm/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__s390x__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build s390x,linux
@@ -303,6 +303,9 @@ const (
SYS_RECVMSG = 372
SYS_SHUTDOWN = 373
SYS_MLOCK2 = 374
+ SYS_COPY_FILE_RANGE = 375
+ SYS_PREADV2 = 376
+ SYS_PWRITEV2 = 377
SYS_SELECT = 142
SYS_GETRLIMIT = 191
SYS_LCHOWN = 198
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 46b5bee1d..c9c129dc4 100644
--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
@@ -1,4 +1,4 @@
-// mksysnum_linux.pl /usr/include/sparc64-linux-gnu/asm/unistd.h
+// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__arch64__ linux/usr/include/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
// +build sparc64,linux
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 a3631053c..99dfd588a 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
@@ -210,6 +210,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -334,6 +350,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 0573e6cd2..c9e1e64a2 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
@@ -212,6 +212,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -338,6 +354,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 0578b5396..4bfba2a9e 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
@@ -214,6 +214,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]uint8
@@ -338,6 +354,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 808e04669..e58c500c1 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
@@ -213,6 +213,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -339,6 +355,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 2eaff573d..a960085f8 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
@@ -213,6 +213,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -336,6 +352,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 73e4b76c0..9d46a62c7 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
@@ -213,6 +213,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -338,6 +354,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 479ca3e1b..267bfe903 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
@@ -213,6 +213,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -338,6 +354,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 7617a69d0..950515a8e 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
@@ -213,6 +213,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -336,6 +352,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 2db548b90..88538cbdc 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
@@ -214,6 +214,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]uint8
@@ -340,6 +356,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 4bfdcc0ac..2f63bc032 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
@@ -214,6 +214,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]uint8
@@ -340,6 +356,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 435cd792f..2c5bb05d1 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
@@ -213,6 +213,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -338,6 +354,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
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 439f96914..22bdab961 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
@@ -218,6 +218,22 @@ type RawSockaddrCAN struct {
Addr [8]byte
}
+type RawSockaddrALG struct {
+ Family uint16
+ Type [14]uint8
+ Feat uint32
+ Mask uint32
+ Name [64]uint8
+}
+
+type RawSockaddrVM struct {
+ Family uint16
+ Reserved1 uint16
+ Port uint32
+ Cid uint32
+ Zero [4]uint8
+}
+
type RawSockaddr struct {
Family uint16
Data [14]int8
@@ -343,6 +359,8 @@ const (
SizeofSockaddrNetlink = 0xc
SizeofSockaddrHCI = 0x6
SizeofSockaddrCAN = 0x10
+ SizeofSockaddrALG = 0x58
+ SizeofSockaddrVM = 0x10
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc